home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / sos3-2.lha / include / mta_use.h < prev    next >
C/C++ Source or Header  |  1991-11-08  |  123KB  |  2,944 lines

  1. #ifndef mta_SOSH
  2. #define mta_SOSH 1
  3.  
  4. #include "knl_use.h"
  5. #include "agg_use.h"
  6. #include "dir_use.h"
  7. class sos_String_sos_Schema_type_Association;
  8. class sos_String_sos_Schema_type_Mapping;
  9. typedef class sos_String_sos_Schema_type_Mapping sos_Type_table;
  10. class sos_Schema_module_Collection;
  11. class sos_Schema_module_List;
  12. class sos_Imports;
  13. class sos_Schema_impl;
  14. class sos_Method_impl;
  15. class sos_Expr;
  16. class sos_String_sos_Schema_module_Association;
  17. class sos_String_sos_Schema_module_Mapping;
  18. class sos_Schema_module_Directory;
  19. class sos_Schema_type_Collection;
  20. class sos_Schema_type_List;
  21. class sos_Schema_impl_Collection;
  22. class sos_Schema_impl_List;
  23. class sos_Schema_module;
  24. class sos_Int_expr;
  25. class sos_Identifier;
  26. class sos_Expr_Collection;
  27. class sos_Expr_List;
  28. class sos_Type_name;
  29. class sos_Schema_type;
  30. class sos_Unidentified_type;
  31. class sos_Type_with_params;
  32. class sos_Type_name_Collection;
  33. class sos_Type_name_List;
  34. class sos_Generic_instantiation;
  35. class sos_Gen_param;
  36. class sos_Param;
  37. enum sos_Method_kind { sos_PRIVATE,sos_PROTECTED,sos_PUBLIC };
  38. class sos_Param_Collection;
  39. class sos_Param_List;
  40. class sos_Method_impl_Collection;
  41. class sos_Method_impl_List;
  42. class sos_Method;
  43. class sos_Method_Collection;
  44. class sos_Method_List;
  45. class sos_String_sos_Method_List_Association;
  46. class sos_String_sos_Method_List_Mapping;
  47. class sos_Method_table;
  48. class sos_Comp_method;
  49. class sos_Union_type;
  50. class sos_Typedef_type;
  51. class sos_String_Collection;
  52. class sos_String_List;
  53. class sos_Enum_type;
  54. class sos_Extern_type;
  55. class sos_Forward_class_type;
  56. class sos_Super_class;
  57. class sos_Gen_param_Collection;
  58. class sos_Gen_param_List;
  59. class sos_Super_class_Collection;
  60. class sos_Super_class_List;
  61. class sos_Class_type;
  62. class sos_String_sos_Schema_type_Association: public sos_Root_class 
  63. {  friend class _sos_Object_sos_Object_Association;
  64.    class _sos_Object_sos_Object_Association* _ref;
  65. public:
  66.    operator sos_Object ();
  67.    operator sos_Aggregate ();
  68.    operator sos_Object_sos_Object_Association ();
  69.    static sos_String_sos_Schema_type_Association make(sos_Typed_id&);
  70.    static sos_String_sos_Schema_type_Association make(sos_Typed_id&p,_sos_Object_sos_Object_Association*r){
  71.    sos_String_sos_Schema_type_Association o; o._tpid = p; o._ref=r; return o;}
  72.    static sos_String_sos_Schema_type_Association make(sos_Root_class&);
  73.    sos_Offset _size();
  74.    static sos_String_sos_Schema_type_Association create(sos_Container,sos_Bool role1_based_on_equal = FALSE,sos_Bool role2_based_on_equal = FALSE);
  75.    static sos_String_sos_Schema_type_Association copy(sos_String_sos_Schema_type_Association,sos_Container);
  76.    static sos_String_sos_Schema_type_Association clone(sos_String_sos_Schema_type_Association,sos_Container);
  77.    void destroy();
  78.    sos_Int hash_value();
  79.    sos_Bool is_role2(sos_Schema_type _p1);
  80.    sos_String get_role1(sos_Cursor _p1);
  81.    sos_Schema_type get_role2(sos_Cursor _p1);
  82.    sos_Bool is_empty();
  83.    sos_Int card();
  84.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  85.    void close_cursor(sos_Cursor _p1);
  86.    sos_Cursor duplicate(sos_Cursor _p1);
  87.    sos_Bool is_valid(sos_Cursor _p1);
  88.    void remove_at(sos_Cursor _p1);
  89.    sos_Bool to_first(sos_Cursor _p1);
  90.    sos_Bool to_last(sos_Cursor _p1);
  91.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  92.    sos_Bool has_type(sos_Type _p1);
  93.    sos_Bool isa(sos_Type _p1);
  94.    sos_Bool operator==(sos_Object _p1);
  95.    sos_Bool operator!=(sos_Object _p1);
  96.    void assign(sos_Object source);
  97.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  98.    sos_Bool is_role1(sos_String _p1);
  99.    void clear();
  100.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  101.    sos_Type type();
  102.    sos_Bool is_some(sos_Type _p1);
  103.    sos_Bool is_value();
  104.    sos_Int size();
  105.    sos_Bool identical(sos_Object _p1);
  106.    sos_Bool like(sos_Object _p1);
  107.    sos_Comp_result compare_ids(sos_Object _p1);
  108. };
  109. #define _sos_String_sos_Schema_type_Association_type sos_Id::make(sos_Container::make(279048),3112)
  110. #define sos_String_sos_Schema_type_Association_type sos_type_object(_sos_String_sos_Schema_type_Association_type,sos_Id::make(sos_Container::make(279048),529560))
  111. class sos_String_sos_Schema_type_Mapping: public sos_Root_class 
  112. {  friend class _sos_Object_sos_Object_Mapping;
  113.    class _sos_Object_sos_Object_Mapping* _ref;
  114. public:
  115.    operator sos_Object ();
  116.    operator sos_Aggregate ();
  117.    operator sos_String_sos_Schema_type_Association ();
  118.    operator sos_Object_sos_Object_Association ();
  119.    operator sos_Object_sos_Object_Mapping ();
  120.    static sos_String_sos_Schema_type_Mapping make(sos_Typed_id&);
  121.    static sos_String_sos_Schema_type_Mapping make(sos_Typed_id&p,_sos_Object_sos_Object_Mapping*r){
  122.    sos_String_sos_Schema_type_Mapping o; o._tpid = p; o._ref=r; return o;}
  123.    static sos_String_sos_Schema_type_Mapping make(sos_Root_class&);
  124.    sos_Offset _size();
  125.    static sos_String_sos_Schema_type_Mapping create(sos_Container,sos_Bool list_cursor = FALSE,sos_Bool key_based_on_equal = FALSE,sos_Bool info_based_on_equal = FALSE);
  126.    static sos_String_sos_Schema_type_Mapping copy(sos_String_sos_Schema_type_Mapping,sos_Container);
  127.    static sos_String_sos_Schema_type_Mapping clone(sos_String_sos_Schema_type_Mapping,sos_Container);
  128.    void destroy();
  129.    sos_Int hash_value();
  130.    sos_Schema_type operator[](sos_String _p1);
  131.    sos_Schema_type get_info(sos_Cursor _p1);
  132.    void set_info(sos_Cursor _p1,sos_Schema_type _p2);
  133.    sos_Bool is_role2(sos_Schema_type _p1);
  134.    sos_Int card();
  135.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  136.    void close_cursor(sos_Cursor _p1);
  137.    sos_Cursor duplicate(sos_Cursor _p1);
  138.    sos_Bool to_last(sos_Cursor _p1);
  139.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  140.    sos_Bool is_empty();
  141.    sos_Bool isa(sos_Type _p1);
  142.    sos_Bool operator==(sos_Object _p1);
  143.    sos_Bool operator!=(sos_Object _p1);
  144.    void assign(sos_Object source);
  145.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  146.    sos_Bool is_info(sos_Schema_type _p1);
  147.    void clear();
  148.    void insert_after(sos_Cursor _p1,sos_String _p2,sos_Schema_type _p3);
  149.    sos_String get_role1(sos_Cursor _p1);
  150.    sos_Schema_type get_role2(sos_Cursor _p1);
  151.    void remove_at(sos_Cursor _p1);
  152.    sos_Bool is_valid(sos_Cursor _p1);
  153.    sos_Bool to_first(sos_Cursor _p1);
  154.    sos_Bool has_type(sos_Type _p1);
  155.    sos_Bool is_key(sos_String _p1);
  156.    void remove(sos_String _p1);
  157.    sos_String get_key(sos_Cursor _p1);
  158.    void move_cursor(sos_Cursor _p1,sos_String _p2);
  159.    sos_Bool is_role1(sos_String _p1);
  160.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  161.    sos_Bool is_some(sos_Type _p1);
  162.    sos_Bool is_value();
  163.    sos_Bool identical(sos_Object _p1);
  164.    sos_Comp_result compare_ids(sos_Object _p1);
  165.    void insert(sos_String _p1,sos_Schema_type _p2);
  166.    void insert_before(sos_Cursor _p1,sos_String _p2,sos_Schema_type _p3);
  167.    sos_Int size();
  168.    sos_Type type();
  169.    sos_Bool like(sos_Object _p1);
  170. };
  171. #define _sos_String_sos_Schema_type_Mapping_type sos_Id::make(sos_Container::make(279048),1672)
  172. #define sos_String_sos_Schema_type_Mapping_type sos_type_object(_sos_String_sos_Schema_type_Mapping_type,sos_Id::make(sos_Container::make(279048),529560))
  173. #define _sos_Type_table_type sos_Id::make(sos_Container::make(279048),1672)
  174. #define sos_Type_table_type sos_type_object(_sos_Type_table_type,sos_Id::make(sos_Container::make(279048),529560))
  175. class sos_Schema_module_Collection: public sos_Root_class 
  176. {  friend class _sos_Object_Collection;
  177.    class _sos_Object_Collection* _ref;
  178. public:
  179.    operator sos_Object ();
  180.    operator sos_Aggregate ();
  181.    operator sos_Object_Collection ();
  182.    static sos_Schema_module_Collection make(sos_Typed_id&);
  183.    static sos_Schema_module_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  184.    sos_Schema_module_Collection o; o._tpid = p; o._ref=r; return o;}
  185.    static sos_Schema_module_Collection make(sos_Root_class&);
  186.    sos_Offset _size();
  187.    static sos_Schema_module_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  188.    static sos_Schema_module_Collection copy(sos_Schema_module_Collection,sos_Container);
  189.    static sos_Schema_module_Collection clone(sos_Schema_module_Collection,sos_Container);
  190.    void destroy();
  191.    sos_Int hash_value();
  192.    sos_Bool is_element(sos_Schema_module _p1);
  193.    sos_Schema_module get(sos_Cursor _p1);
  194.    sos_Bool is_empty();
  195.    sos_Int card();
  196.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  197.    void close_cursor(sos_Cursor _p1);
  198.    sos_Cursor duplicate(sos_Cursor _p1);
  199.    sos_Bool is_valid(sos_Cursor _p1);
  200.    void remove_at(sos_Cursor _p1);
  201.    sos_Bool to_first(sos_Cursor _p1);
  202.    sos_Bool to_last(sos_Cursor _p1);
  203.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  204.    sos_Bool has_type(sos_Type _p1);
  205.    sos_Bool isa(sos_Type _p1);
  206.    sos_Bool operator==(sos_Object _p1);
  207.    sos_Bool operator!=(sos_Object _p1);
  208.    void assign(sos_Object source);
  209.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  210.    void clear();
  211.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  212.    sos_Type type();
  213.    sos_Bool is_some(sos_Type _p1);
  214.    sos_Bool is_value();
  215.    sos_Int size();
  216.    sos_Bool identical(sos_Object _p1);
  217.    sos_Bool like(sos_Object _p1);
  218.    sos_Comp_result compare_ids(sos_Object _p1);
  219. };
  220. #define _sos_Schema_module_Collection_type sos_Id::make(sos_Container::make(279048),33432)
  221. #define sos_Schema_module_Collection_type sos_type_object(_sos_Schema_module_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  222. class sos_Schema_module_List: public sos_Root_class 
  223. {  friend class _sos_Object_List;
  224.    class _sos_Object_List* _ref;
  225. public:
  226.    operator sos_Object ();
  227.    operator sos_Aggregate ();
  228.    operator sos_Schema_module_Collection ();
  229.    operator sos_Object_Collection ();
  230.    operator sos_Object_List ();
  231.    static sos_Schema_module_List make(sos_Typed_id&);
  232.    static sos_Schema_module_List make(sos_Typed_id&p,_sos_Object_List*r){
  233.    sos_Schema_module_List o; o._tpid = p; o._ref=r; return o;}
  234.    static sos_Schema_module_List make(sos_Root_class&);
  235.    sos_Offset _size();
  236.    static sos_Schema_module_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  237.    static sos_Schema_module_List copy(sos_Schema_module_List,sos_Container);
  238.    static sos_Schema_module_List clone(sos_Schema_module_List,sos_Container);
  239.    void destroy();
  240.    sos_Int hash_value();
  241.    void operator+=(sos_Schema_module_List _p1);
  242.    void insert_after(sos_Cursor _p1,sos_Schema_module _p2);
  243.    void set(sos_Cursor _p1,sos_Schema_module _p2);
  244.    sos_Schema_module get(sos_Cursor _p1);
  245.    void remove_at(sos_Cursor _p1);
  246.    sos_Int card();
  247.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  248.    void close_cursor(sos_Cursor _p1);
  249.    sos_Cursor duplicate(sos_Cursor _p1);
  250.    sos_Bool is_valid(sos_Cursor _p1);
  251.    sos_Bool to_first(sos_Cursor _p1);
  252.    sos_Bool to_last(sos_Cursor _p1);
  253.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  254.    sos_Bool is_element(sos_Schema_module _p1);
  255.    sos_Bool is_empty();
  256.    sos_Bool has_type(sos_Type _p1);
  257.    sos_Bool isa(sos_Type _p1);
  258.    sos_Bool operator==(sos_Object _p1);
  259.    sos_Bool operator!=(sos_Object _p1);
  260.    void assign(sos_Object source);
  261.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  262.    void append(sos_Schema_module _p1);
  263.    void insert(Index _p1,sos_Schema_module _p2);
  264.    Index current_pos(sos_Cursor _p1);
  265.    void insert_before(sos_Cursor _p1,sos_Schema_module _p2);
  266.    void clear();
  267.    sos_Type type();
  268.    sos_Int size();
  269.    sos_Bool like(sos_Object _p1);
  270.    void remove(Index _p1);
  271.    sos_Schema_module get_nth(Index _p1);
  272.    void set_nth(Index _p1,sos_Schema_module _p2);
  273.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  274.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  275.    sos_Bool is_some(sos_Type _p1);
  276.    sos_Bool is_value();
  277.    sos_Bool identical(sos_Object _p1);
  278.    sos_Comp_result compare_ids(sos_Object _p1);
  279. };
  280. #define _sos_Schema_module_List_type sos_Id::make(sos_Container::make(279048),33088)
  281. #define sos_Schema_module_List_type sos_type_object(_sos_Schema_module_List_type,sos_Id::make(sos_Container::make(279048),529560))
  282. class sos_Imports: public sos_Root_class 
  283. {  friend class _sos_Imports;
  284.    class _sos_Imports* _ref;
  285. public:
  286.    operator sos_Object ();
  287.    operator sos_Aggregate ();
  288.    operator sos_Schema_module_Collection ();
  289.    operator sos_Object_Collection ();
  290.    operator sos_Schema_module_List ();
  291.    operator sos_Object_List ();
  292.    static sos_Imports make(sos_Typed_id&);
  293.    static sos_Imports make(sos_Typed_id&p,_sos_Imports*r){
  294.    sos_Imports o; o._tpid = p; o._ref=r; return o;}
  295.    static sos_Imports make(sos_Root_class&);
  296.    sos_Offset _size();
  297.    static sos_Imports create(sos_Container);
  298.    static sos_Imports copy(sos_Imports,sos_Container);
  299.    static sos_Imports clone(sos_Imports,sos_Container);
  300.    void destroy();
  301.    sos_Int hash_value();
  302.    void operator+=(sos_Schema_module_List _p1);
  303.    void insert_after(sos_Cursor _p1,sos_Schema_module _p2);
  304.    void set(sos_Cursor _p1,sos_Schema_module _p2);
  305.    sos_Schema_module get(sos_Cursor _p1);
  306.    void remove_at(sos_Cursor _p1);
  307.    sos_Int card();
  308.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  309.    void close_cursor(sos_Cursor _p1);
  310.    sos_Cursor duplicate(sos_Cursor _p1);
  311.    sos_Bool is_valid(sos_Cursor _p1);
  312.    sos_Bool to_first(sos_Cursor _p1);
  313.    sos_Bool to_last(sos_Cursor _p1);
  314.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  315.    sos_Bool is_element(sos_Schema_module _p1);
  316.    sos_Bool is_empty();
  317.    sos_Bool has_type(sos_Type _p1);
  318.    sos_Bool isa(sos_Type _p1);
  319.    sos_Bool operator==(sos_Object _p1);
  320.    sos_Bool operator!=(sos_Object _p1);
  321. protected:
  322.    static void local_assign(sos_Imports x,sos_Imports y);
  323.    static sos_Bool local_equal(sos_Imports x,sos_Imports y,sos_Eq_kind eq_kind = EQ_STRONG);
  324. public:
  325.    void assign(sos_Object source);
  326.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  327.    sos_Schema_type lookup_type(sos_String name,sos_Bool look_for_alias = FALSE);
  328.    void append(sos_Schema_module _p1);
  329.    void insert(Index _p1,sos_Schema_module _p2);
  330.    Index current_pos(sos_Cursor _p1);
  331.    void insert_before(sos_Cursor _p1,sos_Schema_module _p2);
  332. protected:
  333.    sos_Bool get_based_on_equal();
  334.    void set_based_on_equal(sos_Bool _p1);
  335. public:
  336.    void clear();
  337.    sos_Type type();
  338.    sos_Int size();
  339.    sos_Bool like(sos_Object _p1);
  340.    void remove(Index _p1);
  341.    sos_Schema_module get_nth(Index _p1);
  342.    void set_nth(Index _p1,sos_Schema_module _p2);
  343.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  344.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  345.    sos_Bool is_some(sos_Type _p1);
  346.    sos_Bool is_value();
  347.    sos_Bool identical(sos_Object _p1);
  348.    sos_Comp_result compare_ids(sos_Object _p1);
  349. protected:
  350.    static sos_Int local_hash_value(sos_Imports x);
  351. };
  352. #define _sos_Imports_type sos_Id::make(sos_Container::make(279048),32888)
  353. #define sos_Imports_type sos_type_object(_sos_Imports_type,sos_Id::make(sos_Container::make(279048),529560))
  354. class sos_Schema_impl: public sos_Root_class 
  355. {  friend class _sos_Schema_impl;
  356.    class _sos_Schema_impl* _ref;
  357. public:
  358.    operator sos_Object ();
  359.    static sos_Schema_impl make(sos_Typed_id&);
  360.    static sos_Schema_impl make(sos_Typed_id&p,_sos_Schema_impl*r){
  361.    sos_Schema_impl o; o._tpid = p; o._ref=r; return o;}
  362.    static sos_Schema_impl make(sos_Root_class&);
  363.    sos_Offset _size();
  364.    static sos_Schema_impl create(sos_Container);
  365.    static sos_Schema_impl copy(sos_Schema_impl,sos_Container);
  366.    static sos_Schema_impl clone(sos_Schema_impl,sos_Container);
  367.    void destroy();
  368.    void assign(sos_Object source);
  369.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  370.    sos_Int hash_value();
  371.    sos_Type type();
  372.    sos_Bool has_type(sos_Type _p1);
  373.    sos_Bool isa(sos_Type _p1);
  374.    sos_Bool is_some(sos_Type _p1);
  375.    sos_Bool is_value();
  376.    sos_Int size();
  377.    sos_Bool identical(sos_Object _p1);
  378.    sos_Bool operator==(sos_Object _p1);
  379.    sos_Bool operator!=(sos_Object _p1);
  380.    sos_Bool like(sos_Object _p1);
  381.    sos_Comp_result compare_ids(sos_Object _p1);
  382. protected:
  383.    static void local_assign(sos_Schema_impl x,sos_Schema_impl y);
  384.    static sos_Bool local_equal(sos_Schema_impl x,sos_Schema_impl y,sos_Eq_kind eq_kind = EQ_STRONG);
  385.    static sos_Int local_hash_value(sos_Schema_impl x);
  386. };
  387. #define _sos_Schema_impl_type sos_Id::make(sos_Container::make(279048),65600)
  388. #define sos_Schema_impl_type sos_type_object(_sos_Schema_impl_type,sos_Id::make(sos_Container::make(279048),529560))
  389. class sos_Method_impl: public sos_Root_class 
  390. {  friend class _sos_Method_impl;
  391.    class _sos_Method_impl* _ref;
  392. public:
  393.    operator sos_Object ();
  394.    static sos_Method_impl make(sos_Typed_id&);
  395.    static sos_Method_impl make(sos_Typed_id&p,_sos_Method_impl*r){
  396.    sos_Method_impl o; o._tpid = p; o._ref=r; return o;}
  397.    static sos_Method_impl make(sos_Root_class&);
  398.    sos_Offset _size();
  399.    static sos_Method_impl create(sos_Container);
  400.    static sos_Method_impl copy(sos_Method_impl,sos_Container);
  401.    static sos_Method_impl clone(sos_Method_impl,sos_Container);
  402.    void destroy();
  403.    void assign(sos_Object source);
  404.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  405.    sos_Int hash_value();
  406.    sos_Type type();
  407.    sos_Bool has_type(sos_Type _p1);
  408.    sos_Bool isa(sos_Type _p1);
  409.    sos_Bool is_some(sos_Type _p1);
  410.    sos_Bool is_value();
  411.    sos_Int size();
  412.    sos_Bool identical(sos_Object _p1);
  413.    sos_Bool operator==(sos_Object _p1);
  414.    sos_Bool operator!=(sos_Object _p1);
  415.    sos_Bool like(sos_Object _p1);
  416.    sos_Comp_result compare_ids(sos_Object _p1);
  417. protected:
  418.    static void local_assign(sos_Method_impl x,sos_Method_impl y);
  419.    static sos_Bool local_equal(sos_Method_impl x,sos_Method_impl y,sos_Eq_kind eq_kind = EQ_STRONG);
  420.    static sos_Int local_hash_value(sos_Method_impl x);
  421. };
  422. #define _sos_Method_impl_type sos_Id::make(sos_Container::make(279048),71888)
  423. #define sos_Method_impl_type sos_type_object(_sos_Method_impl_type,sos_Id::make(sos_Container::make(279048),529560))
  424. class sos_Expr: public sos_Root_class 
  425. {  friend class _sos_Expr;
  426.    class _sos_Expr* _ref;
  427. public:
  428.    operator sos_Object ();
  429.    static sos_Expr make(sos_Typed_id&);
  430.    static sos_Expr make(sos_Typed_id&p,_sos_Expr*r){
  431.    sos_Expr o; o._tpid = p; o._ref=r; return o;}
  432.    static sos_Expr make(sos_Root_class&);
  433.    sos_Offset _size();
  434.    static sos_Expr create(sos_Container);
  435.    static sos_Expr copy(sos_Expr,sos_Container);
  436.    static sos_Expr clone(sos_Expr,sos_Container);
  437.    void destroy();
  438.    void assign(sos_Object source);
  439.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  440.    sos_Int hash_value();
  441.    sos_Type type();
  442.    sos_Bool has_type(sos_Type _p1);
  443.    sos_Bool isa(sos_Type _p1);
  444.    sos_Bool is_some(sos_Type _p1);
  445.    sos_Bool is_value();
  446.    sos_Int size();
  447.    sos_Bool identical(sos_Object _p1);
  448.    sos_Bool operator==(sos_Object _p1);
  449.    sos_Bool operator!=(sos_Object _p1);
  450.    sos_Bool like(sos_Object _p1);
  451.    sos_Comp_result compare_ids(sos_Object _p1);
  452. protected:
  453.    static void local_assign(sos_Expr x,sos_Expr y);
  454.    static sos_Bool local_equal(sos_Expr x,sos_Expr y,sos_Eq_kind eq_kind = EQ_STRONG);
  455.    static sos_Int local_hash_value(sos_Expr x);
  456. };
  457. #define _sos_Expr_type sos_Id::make(sos_Container::make(279048),78180)
  458. #define sos_Expr_type sos_type_object(_sos_Expr_type,sos_Id::make(sos_Container::make(279048),529560))
  459. class sos_String_sos_Schema_module_Association: public sos_Root_class 
  460. {  friend class _sos_Object_sos_Object_Association;
  461.    class _sos_Object_sos_Object_Association* _ref;
  462. public:
  463.    operator sos_Object ();
  464.    operator sos_Aggregate ();
  465.    operator sos_Object_sos_Object_Association ();
  466.    static sos_String_sos_Schema_module_Association make(sos_Typed_id&);
  467.    static sos_String_sos_Schema_module_Association make(sos_Typed_id&p,_sos_Object_sos_Object_Association*r){
  468.    sos_String_sos_Schema_module_Association o; o._tpid = p; o._ref=r; return o;}
  469.    static sos_String_sos_Schema_module_Association make(sos_Root_class&);
  470.    sos_Offset _size();
  471.    static sos_String_sos_Schema_module_Association create(sos_Container,sos_Bool role1_based_on_equal = FALSE,sos_Bool role2_based_on_equal = FALSE);
  472.    static sos_String_sos_Schema_module_Association copy(sos_String_sos_Schema_module_Association,sos_Container);
  473.    static sos_String_sos_Schema_module_Association clone(sos_String_sos_Schema_module_Association,sos_Container);
  474.    void destroy();
  475.    sos_Int hash_value();
  476.    sos_Bool is_role2(sos_Schema_module _p1);
  477.    sos_String get_role1(sos_Cursor _p1);
  478.    sos_Schema_module get_role2(sos_Cursor _p1);
  479.    sos_Bool is_empty();
  480.    sos_Int card();
  481.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  482.    void close_cursor(sos_Cursor _p1);
  483.    sos_Cursor duplicate(sos_Cursor _p1);
  484.    sos_Bool is_valid(sos_Cursor _p1);
  485.    void remove_at(sos_Cursor _p1);
  486.    sos_Bool to_first(sos_Cursor _p1);
  487.    sos_Bool to_last(sos_Cursor _p1);
  488.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  489.    sos_Bool has_type(sos_Type _p1);
  490.    sos_Bool isa(sos_Type _p1);
  491.    sos_Bool operator==(sos_Object _p1);
  492.    sos_Bool operator!=(sos_Object _p1);
  493.    void assign(sos_Object source);
  494.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  495.    sos_Bool is_role1(sos_String _p1);
  496.    void clear();
  497.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  498.    sos_Type type();
  499.    sos_Bool is_some(sos_Type _p1);
  500.    sos_Bool is_value();
  501.    sos_Int size();
  502.    sos_Bool identical(sos_Object _p1);
  503.    sos_Bool like(sos_Object _p1);
  504.    sos_Comp_result compare_ids(sos_Object _p1);
  505. };
  506. #define _sos_String_sos_Schema_module_Association_type sos_Id::make(sos_Container::make(279048),88120)
  507. #define sos_String_sos_Schema_module_Association_type sos_type_object(_sos_String_sos_Schema_module_Association_type,sos_Id::make(sos_Container::make(279048),529560))
  508. class sos_String_sos_Schema_module_Mapping: public sos_Root_class 
  509. {  friend class _sos_Object_sos_Object_Mapping;
  510.    class _sos_Object_sos_Object_Mapping* _ref;
  511. public:
  512.    operator sos_Object ();
  513.    operator sos_Aggregate ();
  514.    operator sos_String_sos_Schema_module_Association ();
  515.    operator sos_Object_sos_Object_Association ();
  516.    operator sos_Object_sos_Object_Mapping ();
  517.    static sos_String_sos_Schema_module_Mapping make(sos_Typed_id&);
  518.    static sos_String_sos_Schema_module_Mapping make(sos_Typed_id&p,_sos_Object_sos_Object_Mapping*r){
  519.    sos_String_sos_Schema_module_Mapping o; o._tpid = p; o._ref=r; return o;}
  520.    static sos_String_sos_Schema_module_Mapping make(sos_Root_class&);
  521.    sos_Offset _size();
  522.    static sos_String_sos_Schema_module_Mapping create(sos_Container,sos_Bool list_cursor = FALSE,sos_Bool key_based_on_equal = FALSE,sos_Bool info_based_on_equal = FALSE);
  523.    static sos_String_sos_Schema_module_Mapping copy(sos_String_sos_Schema_module_Mapping,sos_Container);
  524.    static sos_String_sos_Schema_module_Mapping clone(sos_String_sos_Schema_module_Mapping,sos_Container);
  525.    void destroy();
  526.    sos_Int hash_value();
  527.    sos_Schema_module operator[](sos_String _p1);
  528.    sos_Schema_module get_info(sos_Cursor _p1);
  529.    void set_info(sos_Cursor _p1,sos_Schema_module _p2);
  530.    sos_Bool is_role2(sos_Schema_module _p1);
  531.    sos_Int card();
  532.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  533.    void close_cursor(sos_Cursor _p1);
  534.    sos_Cursor duplicate(sos_Cursor _p1);
  535.    sos_Bool to_last(sos_Cursor _p1);
  536.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  537.    sos_Bool is_empty();
  538.    sos_Bool isa(sos_Type _p1);
  539.    sos_Bool operator==(sos_Object _p1);
  540.    sos_Bool operator!=(sos_Object _p1);
  541.    void assign(sos_Object source);
  542.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  543.    sos_Bool is_info(sos_Schema_module _p1);
  544.    void clear();
  545.    void insert_after(sos_Cursor _p1,sos_String _p2,sos_Schema_module _p3);
  546.    sos_String get_role1(sos_Cursor _p1);
  547.    sos_Schema_module get_role2(sos_Cursor _p1);
  548.    void remove_at(sos_Cursor _p1);
  549.    sos_Bool is_valid(sos_Cursor _p1);
  550.    sos_Bool to_first(sos_Cursor _p1);
  551.    sos_Bool has_type(sos_Type _p1);
  552.    sos_Bool is_key(sos_String _p1);
  553.    void remove(sos_String _p1);
  554.    sos_String get_key(sos_Cursor _p1);
  555.    void move_cursor(sos_Cursor _p1,sos_String _p2);
  556.    sos_Bool is_role1(sos_String _p1);
  557.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  558.    sos_Bool is_some(sos_Type _p1);
  559.    sos_Bool is_value();
  560.    sos_Bool identical(sos_Object _p1);
  561.    sos_Comp_result compare_ids(sos_Object _p1);
  562.    void insert(sos_String _p1,sos_Schema_module _p2);
  563.    void insert_before(sos_Cursor _p1,sos_String _p2,sos_Schema_module _p3);
  564.    sos_Int size();
  565.    sos_Type type();
  566.    sos_Bool like(sos_Object _p1);
  567. };
  568. #define _sos_String_sos_Schema_module_Mapping_type sos_Id::make(sos_Container::make(279048),87724)
  569. #define sos_String_sos_Schema_module_Mapping_type sos_type_object(_sos_String_sos_Schema_module_Mapping_type,sos_Id::make(sos_Container::make(279048),529560))
  570. class sos_Schema_module_Directory: public sos_Root_class 
  571. {  friend class _sos_Object_Directory;
  572.    class _sos_Object_Directory* _ref;
  573. public:
  574.    operator sos_Object ();
  575.    operator sos_Aggregate ();
  576.    operator sos_String_sos_Schema_module_Association ();
  577.    operator sos_Object_sos_Object_Association ();
  578.    operator sos_String_sos_Schema_module_Mapping ();
  579.    operator sos_Object_sos_Object_Mapping ();
  580.    operator sos_Named ();
  581.    operator sos_Object_Directory ();
  582.    static sos_Schema_module_Directory make(sos_Typed_id&);
  583.    static sos_Schema_module_Directory make(sos_Typed_id&p,_sos_Object_Directory*r){
  584.    sos_Schema_module_Directory o; o._tpid = p; o._ref=r; return o;}
  585.    static sos_Schema_module_Directory make(sos_Root_class&);
  586.    sos_Offset _size();
  587.    static sos_Schema_module_Directory create(sos_Container,sos_String name);
  588.    static sos_Schema_module_Directory copy(sos_Schema_module_Directory,sos_Container);
  589.    static sos_Schema_module_Directory clone(sos_Schema_module_Directory,sos_Container);
  590.    void destroy();
  591.    sos_Int hash_value();
  592.    static sos_Object_Directory root();
  593.    sos_Schema_module operator[](sos_String _p1);
  594.    sos_Schema_module get_info(sos_Cursor _p1);
  595.    void set_info(sos_Cursor _p1,sos_Schema_module _p2);
  596.    sos_Bool is_role2(sos_Schema_module _p1);
  597.    sos_Int card();
  598.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  599.    void close_cursor(sos_Cursor _p1);
  600.    sos_Cursor duplicate(sos_Cursor _p1);
  601.    sos_Bool to_last(sos_Cursor _p1);
  602.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  603.    sos_Bool is_empty();
  604.    sos_Bool isa(sos_Type _p1);
  605.    sos_Bool operator==(sos_Object _p1);
  606.    sos_Bool operator!=(sos_Object _p1);
  607.    void assign(sos_Object source);
  608.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  609.    void insert(sos_String _p1,sos_Schema_module _p2);
  610.    sos_Bool is_info(sos_Schema_module _p1);
  611.    void clear();
  612.    void insert_before(sos_Cursor _p1,sos_String _p2,sos_Schema_module _p3);
  613.    sos_Int size();
  614.    sos_Type type();
  615.    sos_Bool like(sos_Object _p1);
  616.    sos_String get_name();
  617.    void set_name(sos_String _p1);
  618.    static void set_wd_from_env();
  619.    void insert_after(sos_Cursor _p1,sos_String _p2,sos_Schema_module _p3);
  620.    sos_String get_role1(sos_Cursor _p1);
  621.    sos_Schema_module get_role2(sos_Cursor _p1);
  622.    void remove_at(sos_Cursor _p1);
  623.    sos_Bool is_valid(sos_Cursor _p1);
  624.    sos_Bool to_first(sos_Cursor _p1);
  625.    sos_Bool has_type(sos_Type _p1);
  626.    void remove(sos_String _p1);
  627.    static sos_Object lookup(sos_String _p1);
  628.    static void set_wd(sos_String _p1);
  629.    static sos_Object_Directory get_wd();
  630.    sos_Bool is_key(sos_String _p1);
  631.    sos_String get_key(sos_Cursor _p1);
  632.    void move_cursor(sos_Cursor _p1,sos_String _p2);
  633.    sos_Bool is_role1(sos_String _p1);
  634.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  635.    sos_Bool is_some(sos_Type _p1);
  636.    sos_Bool is_value();
  637.    sos_Bool identical(sos_Object _p1);
  638.    sos_Comp_result compare_ids(sos_Object _p1);
  639. };
  640. #define _sos_Schema_module_Directory_type sos_Id::make(sos_Container::make(279048),87340)
  641. #define sos_Schema_module_Directory_type sos_type_object(_sos_Schema_module_Directory_type,sos_Id::make(sos_Container::make(279048),529560))
  642. class sos_Schema_type_Collection: public sos_Root_class 
  643. {  friend class _sos_Object_Collection;
  644.    class _sos_Object_Collection* _ref;
  645. public:
  646.    operator sos_Object ();
  647.    operator sos_Aggregate ();
  648.    operator sos_Object_Collection ();
  649.    static sos_Schema_type_Collection make(sos_Typed_id&);
  650.    static sos_Schema_type_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  651.    sos_Schema_type_Collection o; o._tpid = p; o._ref=r; return o;}
  652.    static sos_Schema_type_Collection make(sos_Root_class&);
  653.    sos_Offset _size();
  654.    static sos_Schema_type_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  655.    static sos_Schema_type_Collection copy(sos_Schema_type_Collection,sos_Container);
  656.    static sos_Schema_type_Collection clone(sos_Schema_type_Collection,sos_Container);
  657.    void destroy();
  658.    sos_Int hash_value();
  659.    sos_Bool is_element(sos_Schema_type _p1);
  660.    sos_Schema_type get(sos_Cursor _p1);
  661.    sos_Bool is_empty();
  662.    sos_Int card();
  663.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  664.    void close_cursor(sos_Cursor _p1);
  665.    sos_Cursor duplicate(sos_Cursor _p1);
  666.    sos_Bool is_valid(sos_Cursor _p1);
  667.    void remove_at(sos_Cursor _p1);
  668.    sos_Bool to_first(sos_Cursor _p1);
  669.    sos_Bool to_last(sos_Cursor _p1);
  670.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  671.    sos_Bool has_type(sos_Type _p1);
  672.    sos_Bool isa(sos_Type _p1);
  673.    sos_Bool operator==(sos_Object _p1);
  674.    sos_Bool operator!=(sos_Object _p1);
  675.    void assign(sos_Object source);
  676.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  677.    void clear();
  678.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  679.    sos_Type type();
  680.    sos_Bool is_some(sos_Type _p1);
  681.    sos_Bool is_value();
  682.    sos_Int size();
  683.    sos_Bool identical(sos_Object _p1);
  684.    sos_Bool like(sos_Object _p1);
  685.    sos_Comp_result compare_ids(sos_Object _p1);
  686. };
  687. #define _sos_Schema_type_Collection_type sos_Id::make(sos_Container::make(279048),132844)
  688. #define sos_Schema_type_Collection_type sos_type_object(_sos_Schema_type_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  689. class sos_Schema_type_List: public sos_Root_class 
  690. {  friend class _sos_Object_List;
  691.    class _sos_Object_List* _ref;
  692. public:
  693.    operator sos_Object ();
  694.    operator sos_Aggregate ();
  695.    operator sos_Schema_type_Collection ();
  696.    operator sos_Object_Collection ();
  697.    operator sos_Object_List ();
  698.    static sos_Schema_type_List make(sos_Typed_id&);
  699.    static sos_Schema_type_List make(sos_Typed_id&p,_sos_Object_List*r){
  700.    sos_Schema_type_List o; o._tpid = p; o._ref=r; return o;}
  701.    static sos_Schema_type_List make(sos_Root_class&);
  702.    sos_Offset _size();
  703.    static sos_Schema_type_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  704.    static sos_Schema_type_List copy(sos_Schema_type_List,sos_Container);
  705.    static sos_Schema_type_List clone(sos_Schema_type_List,sos_Container);
  706.    void destroy();
  707.    sos_Int hash_value();
  708.    void operator+=(sos_Schema_type_List _p1);
  709.    void insert_after(sos_Cursor _p1,sos_Schema_type _p2);
  710.    void set(sos_Cursor _p1,sos_Schema_type _p2);
  711.    sos_Schema_type get(sos_Cursor _p1);
  712.    void remove_at(sos_Cursor _p1);
  713.    sos_Int card();
  714.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  715.    void close_cursor(sos_Cursor _p1);
  716.    sos_Cursor duplicate(sos_Cursor _p1);
  717.    sos_Bool is_valid(sos_Cursor _p1);
  718.    sos_Bool to_first(sos_Cursor _p1);
  719.    sos_Bool to_last(sos_Cursor _p1);
  720.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  721.    sos_Bool is_element(sos_Schema_type _p1);
  722.    sos_Bool is_empty();
  723.    sos_Bool has_type(sos_Type _p1);
  724.    sos_Bool isa(sos_Type _p1);
  725.    sos_Bool operator==(sos_Object _p1);
  726.    sos_Bool operator!=(sos_Object _p1);
  727.    void assign(sos_Object source);
  728.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  729.    void append(sos_Schema_type _p1);
  730.    void insert(Index _p1,sos_Schema_type _p2);
  731.    Index current_pos(sos_Cursor _p1);
  732.    void insert_before(sos_Cursor _p1,sos_Schema_type _p2);
  733.    void clear();
  734.    sos_Type type();
  735.    sos_Int size();
  736.    sos_Bool like(sos_Object _p1);
  737.    void remove(Index _p1);
  738.    sos_Schema_type get_nth(Index _p1);
  739.    void set_nth(Index _p1,sos_Schema_type _p2);
  740.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  741.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  742.    sos_Bool is_some(sos_Type _p1);
  743.    sos_Bool is_value();
  744.    sos_Bool identical(sos_Object _p1);
  745.    sos_Comp_result compare_ids(sos_Object _p1);
  746. };
  747. #define _sos_Schema_type_List_type sos_Id::make(sos_Container::make(279048),132500)
  748. #define sos_Schema_type_List_type sos_type_object(_sos_Schema_type_List_type,sos_Id::make(sos_Container::make(279048),529560))
  749. class sos_Schema_impl_Collection: public sos_Root_class 
  750. {  friend class _sos_Object_Collection;
  751.    class _sos_Object_Collection* _ref;
  752. public:
  753.    operator sos_Object ();
  754.    operator sos_Aggregate ();
  755.    operator sos_Object_Collection ();
  756.    static sos_Schema_impl_Collection make(sos_Typed_id&);
  757.    static sos_Schema_impl_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  758.    sos_Schema_impl_Collection o; o._tpid = p; o._ref=r; return o;}
  759.    static sos_Schema_impl_Collection make(sos_Root_class&);
  760.    sos_Offset _size();
  761.    static sos_Schema_impl_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  762.    static sos_Schema_impl_Collection copy(sos_Schema_impl_Collection,sos_Container);
  763.    static sos_Schema_impl_Collection clone(sos_Schema_impl_Collection,sos_Container);
  764.    void destroy();
  765.    sos_Int hash_value();
  766.    sos_Bool is_element(sos_Schema_impl _p1);
  767.    sos_Schema_impl get(sos_Cursor _p1);
  768.    sos_Bool is_empty();
  769.    sos_Int card();
  770.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  771.    void close_cursor(sos_Cursor _p1);
  772.    sos_Cursor duplicate(sos_Cursor _p1);
  773.    sos_Bool is_valid(sos_Cursor _p1);
  774.    void remove_at(sos_Cursor _p1);
  775.    sos_Bool to_first(sos_Cursor _p1);
  776.    sos_Bool to_last(sos_Cursor _p1);
  777.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  778.    sos_Bool has_type(sos_Type _p1);
  779.    sos_Bool isa(sos_Type _p1);
  780.    sos_Bool operator==(sos_Object _p1);
  781.    sos_Bool operator!=(sos_Object _p1);
  782.    void assign(sos_Object source);
  783.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  784.    void clear();
  785.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  786.    sos_Type type();
  787.    sos_Bool is_some(sos_Type _p1);
  788.    sos_Bool is_value();
  789.    sos_Int size();
  790.    sos_Bool identical(sos_Object _p1);
  791.    sos_Bool like(sos_Object _p1);
  792.    sos_Comp_result compare_ids(sos_Object _p1);
  793. };
  794. #define _sos_Schema_impl_Collection_type sos_Id::make(sos_Container::make(279048),157900)
  795. #define sos_Schema_impl_Collection_type sos_type_object(_sos_Schema_impl_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  796. class sos_Schema_impl_List: public sos_Root_class 
  797. {  friend class _sos_Object_List;
  798.    class _sos_Object_List* _ref;
  799. public:
  800.    operator sos_Object ();
  801.    operator sos_Aggregate ();
  802.    operator sos_Schema_impl_Collection ();
  803.    operator sos_Object_Collection ();
  804.    operator sos_Object_List ();
  805.    static sos_Schema_impl_List make(sos_Typed_id&);
  806.    static sos_Schema_impl_List make(sos_Typed_id&p,_sos_Object_List*r){
  807.    sos_Schema_impl_List o; o._tpid = p; o._ref=r; return o;}
  808.    static sos_Schema_impl_List make(sos_Root_class&);
  809.    sos_Offset _size();
  810.    static sos_Schema_impl_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  811.    static sos_Schema_impl_List copy(sos_Schema_impl_List,sos_Container);
  812.    static sos_Schema_impl_List clone(sos_Schema_impl_List,sos_Container);
  813.    void destroy();
  814.    sos_Int hash_value();
  815.    void operator+=(sos_Schema_impl_List _p1);
  816.    void insert_after(sos_Cursor _p1,sos_Schema_impl _p2);
  817.    void set(sos_Cursor _p1,sos_Schema_impl _p2);
  818.    sos_Schema_impl get(sos_Cursor _p1);
  819.    void remove_at(sos_Cursor _p1);
  820.    sos_Int card();
  821.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  822.    void close_cursor(sos_Cursor _p1);
  823.    sos_Cursor duplicate(sos_Cursor _p1);
  824.    sos_Bool is_valid(sos_Cursor _p1);
  825.    sos_Bool to_first(sos_Cursor _p1);
  826.    sos_Bool to_last(sos_Cursor _p1);
  827.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  828.    sos_Bool is_element(sos_Schema_impl _p1);
  829.    sos_Bool is_empty();
  830.    sos_Bool has_type(sos_Type _p1);
  831.    sos_Bool isa(sos_Type _p1);
  832.    sos_Bool operator==(sos_Object _p1);
  833.    sos_Bool operator!=(sos_Object _p1);
  834.    void assign(sos_Object source);
  835.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  836.    void append(sos_Schema_impl _p1);
  837.    void insert(Index _p1,sos_Schema_impl _p2);
  838.    Index current_pos(sos_Cursor _p1);
  839.    void insert_before(sos_Cursor _p1,sos_Schema_impl _p2);
  840.    void clear();
  841.    sos_Type type();
  842.    sos_Int size();
  843.    sos_Bool like(sos_Object _p1);
  844.    void remove(Index _p1);
  845.    sos_Schema_impl get_nth(Index _p1);
  846.    void set_nth(Index _p1,sos_Schema_impl _p2);
  847.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  848.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  849.    sos_Bool is_some(sos_Type _p1);
  850.    sos_Bool is_value();
  851.    sos_Bool identical(sos_Object _p1);
  852.    sos_Comp_result compare_ids(sos_Object _p1);
  853. };
  854. #define _sos_Schema_impl_List_type sos_Id::make(sos_Container::make(279048),157696)
  855. #define sos_Schema_impl_List_type sos_type_object(_sos_Schema_impl_List_type,sos_Id::make(sos_Container::make(279048),529560))
  856. class sos_Schema_module: public sos_Root_class 
  857. {  friend class _sos_Schema_module;
  858.    class _sos_Schema_module* _ref;
  859. public:
  860.    operator sos_Object ();
  861.    operator sos_Named ();
  862.    static sos_Schema_module make(sos_Typed_id&);
  863.    static sos_Schema_module make(sos_Typed_id&p,_sos_Schema_module*r){
  864.    sos_Schema_module o; o._tpid = p; o._ref=r; return o;}
  865.    static sos_Schema_module make(sos_Root_class&);
  866.    sos_Offset _size();
  867.    static sos_Schema_module create(sos_Container);
  868.    static sos_Schema_module copy(sos_Schema_module,sos_Container);
  869.    static sos_Schema_module clone(sos_Schema_module,sos_Container);
  870.    void destroy();
  871.    sos_Int hash_value();
  872.    void close_imports();
  873.    void install();
  874.    sos_String get_name();
  875.    void set_name(sos_String _p1);
  876.    sos_Imports get_imports();
  877.    void set_imports(sos_Imports _p1);
  878.    sos_Schema_type_List get_types();
  879.    void set_types(sos_Schema_type_List _p1);
  880.    sos_Type_table get_type_table();
  881.    void set_type_table(sos_Type_table _p1);
  882.    sos_Bool has_type(sos_Type _p1);
  883.    sos_Bool isa(sos_Type _p1);
  884.    sos_Bool operator==(sos_Object _p1);
  885.    sos_Bool operator!=(sos_Object _p1);
  886. protected:
  887.    static void local_assign(sos_Schema_module x,sos_Schema_module y);
  888.    static sos_Bool local_equal(sos_Schema_module x,sos_Schema_module y,sos_Eq_kind eq_kind = EQ_STRONG);
  889. public:
  890.    void assign(sos_Object source);
  891.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  892.    sos_Schema_type lookup_type(sos_String name,sos_Bool look_for_alias = FALSE);
  893.    void open_imports();
  894.    sos_Bool get_has_external_import();
  895.    void set_has_external_import(sos_Bool _p1);
  896.    sos_Bool get_has_external_types();
  897.    void set_has_external_types(sos_Bool _p1);
  898.    sos_Schema_impl_List get_impls();
  899.    void set_impls(sos_Schema_impl_List _p1);
  900.    static sos_Schema_module_Directory schema_dir();
  901.    static sos_Schema_module lookup(sos_String _p1);
  902.    static sos_Schema_module retrieve(sos_Container _p1);
  903.    sos_Type type();
  904.    sos_Bool is_some(sos_Type _p1);
  905.    sos_Bool is_value();
  906.    sos_Int size();
  907.    sos_Bool identical(sos_Object _p1);
  908.    sos_Bool like(sos_Object _p1);
  909.    sos_Comp_result compare_ids(sos_Object _p1);
  910. protected:
  911.    static sos_Int local_hash_value(sos_Schema_module x);
  912. };
  913. #define _sos_Schema_module_type sos_Id::make(sos_Container::make(279048),84484)
  914. #define sos_Schema_module_type sos_type_object(_sos_Schema_module_type,sos_Id::make(sos_Container::make(279048),529560))
  915. class sos_Int_expr: public sos_Root_class 
  916. {  friend class _sos_Int_expr;
  917.    class _sos_Int_expr* _ref;
  918. public:
  919.    operator sos_Object ();
  920.    operator sos_Expr ();
  921.    static sos_Int_expr make(sos_Typed_id&);
  922.    static sos_Int_expr make(sos_Typed_id&p,_sos_Int_expr*r){
  923.    sos_Int_expr o; o._tpid = p; o._ref=r; return o;}
  924.    static sos_Int_expr make(sos_Root_class&);
  925.    sos_Offset _size();
  926.    static sos_Int_expr create(sos_Container);
  927.    static sos_Int_expr copy(sos_Int_expr,sos_Container);
  928.    static sos_Int_expr clone(sos_Int_expr,sos_Container);
  929.    void destroy();
  930.    void assign(sos_Object source);
  931.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  932.    sos_Int hash_value();
  933.    sos_Int get_value();
  934.    void set_value(sos_Int _p1);
  935.    sos_Type type();
  936.    sos_Bool has_type(sos_Type _p1);
  937.    sos_Bool isa(sos_Type _p1);
  938.    sos_Bool is_some(sos_Type _p1);
  939.    sos_Bool is_value();
  940.    sos_Int size();
  941.    sos_Bool identical(sos_Object _p1);
  942.    sos_Bool operator==(sos_Object _p1);
  943.    sos_Bool operator!=(sos_Object _p1);
  944.    sos_Bool like(sos_Object _p1);
  945.    sos_Comp_result compare_ids(sos_Object _p1);
  946. protected:
  947.    static void local_assign(sos_Int_expr x,sos_Int_expr y);
  948.    static sos_Bool local_equal(sos_Int_expr x,sos_Int_expr y,sos_Eq_kind eq_kind = EQ_STRONG);
  949.    static sos_Int local_hash_value(sos_Int_expr x);
  950. };
  951. #define _sos_Int_expr_type sos_Id::make(sos_Container::make(279048),187776)
  952. #define sos_Int_expr_type sos_type_object(_sos_Int_expr_type,sos_Id::make(sos_Container::make(279048),529560))
  953. class sos_Identifier: public sos_Root_class 
  954. {  friend class _sos_Identifier;
  955.    class _sos_Identifier* _ref;
  956. public:
  957.    operator sos_Object ();
  958.    operator sos_Expr ();
  959.    static sos_Identifier make(sos_Typed_id&);
  960.    static sos_Identifier make(sos_Typed_id&p,_sos_Identifier*r){
  961.    sos_Identifier o; o._tpid = p; o._ref=r; return o;}
  962.    static sos_Identifier make(sos_Root_class&);
  963.    sos_Offset _size();
  964.    static sos_Identifier create(sos_Container);
  965.    static sos_Identifier copy(sos_Identifier,sos_Container);
  966.    static sos_Identifier clone(sos_Identifier,sos_Container);
  967.    void destroy();
  968.    void assign(sos_Object source);
  969.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  970.    sos_Int hash_value();
  971.    sos_String get_id();
  972.    void set_id(sos_String _p1);
  973.    sos_Type type();
  974.    sos_Bool has_type(sos_Type _p1);
  975.    sos_Bool isa(sos_Type _p1);
  976.    sos_Bool is_some(sos_Type _p1);
  977.    sos_Bool is_value();
  978.    sos_Int size();
  979.    sos_Bool identical(sos_Object _p1);
  980.    sos_Bool operator==(sos_Object _p1);
  981.    sos_Bool operator!=(sos_Object _p1);
  982.    sos_Bool like(sos_Object _p1);
  983.    sos_Comp_result compare_ids(sos_Object _p1);
  984. protected:
  985.    static void local_assign(sos_Identifier x,sos_Identifier y);
  986.    static sos_Bool local_equal(sos_Identifier x,sos_Identifier y,sos_Eq_kind eq_kind = EQ_STRONG);
  987.    static sos_Int local_hash_value(sos_Identifier x);
  988. };
  989. #define _sos_Identifier_type sos_Id::make(sos_Container::make(279048),194712)
  990. #define sos_Identifier_type sos_type_object(_sos_Identifier_type,sos_Id::make(sos_Container::make(279048),529560))
  991. class sos_Expr_Collection: public sos_Root_class 
  992. {  friend class _sos_Object_Collection;
  993.    class _sos_Object_Collection* _ref;
  994. public:
  995.    operator sos_Object ();
  996.    operator sos_Aggregate ();
  997.    operator sos_Object_Collection ();
  998.    static sos_Expr_Collection make(sos_Typed_id&);
  999.    static sos_Expr_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  1000.    sos_Expr_Collection o; o._tpid = p; o._ref=r; return o;}
  1001.    static sos_Expr_Collection make(sos_Root_class&);
  1002.    sos_Offset _size();
  1003.    static sos_Expr_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  1004.    static sos_Expr_Collection copy(sos_Expr_Collection,sos_Container);
  1005.    static sos_Expr_Collection clone(sos_Expr_Collection,sos_Container);
  1006.    void destroy();
  1007.    sos_Int hash_value();
  1008.    sos_Bool is_element(sos_Expr _p1);
  1009.    sos_Expr get(sos_Cursor _p1);
  1010.    sos_Bool is_empty();
  1011.    sos_Int card();
  1012.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1013.    void close_cursor(sos_Cursor _p1);
  1014.    sos_Cursor duplicate(sos_Cursor _p1);
  1015.    sos_Bool is_valid(sos_Cursor _p1);
  1016.    void remove_at(sos_Cursor _p1);
  1017.    sos_Bool to_first(sos_Cursor _p1);
  1018.    sos_Bool to_last(sos_Cursor _p1);
  1019.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1020.    sos_Bool has_type(sos_Type _p1);
  1021.    sos_Bool isa(sos_Type _p1);
  1022.    sos_Bool operator==(sos_Object _p1);
  1023.    sos_Bool operator!=(sos_Object _p1);
  1024.    void assign(sos_Object source);
  1025.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1026.    void clear();
  1027.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1028.    sos_Type type();
  1029.    sos_Bool is_some(sos_Type _p1);
  1030.    sos_Bool is_value();
  1031.    sos_Int size();
  1032.    sos_Bool identical(sos_Object _p1);
  1033.    sos_Bool like(sos_Object _p1);
  1034.    sos_Comp_result compare_ids(sos_Object _p1);
  1035. };
  1036. #define _sos_Expr_Collection_type sos_Id::make(sos_Container::make(279048),205120)
  1037. #define sos_Expr_Collection_type sos_type_object(_sos_Expr_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  1038. class sos_Expr_List: public sos_Root_class 
  1039. {  friend class _sos_Object_List;
  1040.    class _sos_Object_List* _ref;
  1041. public:
  1042.    operator sos_Object ();
  1043.    operator sos_Aggregate ();
  1044.    operator sos_Expr_Collection ();
  1045.    operator sos_Object_Collection ();
  1046.    operator sos_Object_List ();
  1047.    static sos_Expr_List make(sos_Typed_id&);
  1048.    static sos_Expr_List make(sos_Typed_id&p,_sos_Object_List*r){
  1049.    sos_Expr_List o; o._tpid = p; o._ref=r; return o;}
  1050.    static sos_Expr_List make(sos_Root_class&);
  1051.    sos_Offset _size();
  1052.    static sos_Expr_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  1053.    static sos_Expr_List copy(sos_Expr_List,sos_Container);
  1054.    static sos_Expr_List clone(sos_Expr_List,sos_Container);
  1055.    void destroy();
  1056.    sos_Int hash_value();
  1057.    void operator+=(sos_Expr_List _p1);
  1058.    void insert_after(sos_Cursor _p1,sos_Expr _p2);
  1059.    void set(sos_Cursor _p1,sos_Expr _p2);
  1060.    sos_Expr get(sos_Cursor _p1);
  1061.    void remove_at(sos_Cursor _p1);
  1062.    sos_Int card();
  1063.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1064.    void close_cursor(sos_Cursor _p1);
  1065.    sos_Cursor duplicate(sos_Cursor _p1);
  1066.    sos_Bool is_valid(sos_Cursor _p1);
  1067.    sos_Bool to_first(sos_Cursor _p1);
  1068.    sos_Bool to_last(sos_Cursor _p1);
  1069.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1070.    sos_Bool is_element(sos_Expr _p1);
  1071.    sos_Bool is_empty();
  1072.    sos_Bool has_type(sos_Type _p1);
  1073.    sos_Bool isa(sos_Type _p1);
  1074.    sos_Bool operator==(sos_Object _p1);
  1075.    sos_Bool operator!=(sos_Object _p1);
  1076.    void assign(sos_Object source);
  1077.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1078.    void append(sos_Expr _p1);
  1079.    void insert(Index _p1,sos_Expr _p2);
  1080.    Index current_pos(sos_Cursor _p1);
  1081.    void insert_before(sos_Cursor _p1,sos_Expr _p2);
  1082.    void clear();
  1083.    sos_Type type();
  1084.    sos_Int size();
  1085.    sos_Bool like(sos_Object _p1);
  1086.    void remove(Index _p1);
  1087.    sos_Expr get_nth(Index _p1);
  1088.    void set_nth(Index _p1,sos_Expr _p2);
  1089.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  1090.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1091.    sos_Bool is_some(sos_Type _p1);
  1092.    sos_Bool is_value();
  1093.    sos_Bool identical(sos_Object _p1);
  1094.    sos_Comp_result compare_ids(sos_Object _p1);
  1095. };
  1096. #define _sos_Expr_List_type sos_Id::make(sos_Container::make(279048),204800)
  1097. #define sos_Expr_List_type sos_type_object(_sos_Expr_List_type,sos_Id::make(sos_Container::make(279048),529560))
  1098. class sos_Type_name: public sos_Root_class 
  1099. {  friend class _sos_Type_name;
  1100.    class _sos_Type_name* _ref;
  1101. public:
  1102.    operator sos_Object ();
  1103.    static sos_Type_name make(sos_Typed_id&);
  1104.    static sos_Type_name make(sos_Typed_id&p,_sos_Type_name*r){
  1105.    sos_Type_name o; o._tpid = p; o._ref=r; return o;}
  1106.    static sos_Type_name make(sos_Root_class&);
  1107.    sos_Offset _size();
  1108.    static sos_Type_name create(sos_Container);
  1109.    static sos_Type_name copy(sos_Type_name,sos_Container);
  1110.    static sos_Type_name clone(sos_Type_name,sos_Container);
  1111.    void destroy();
  1112.    void assign(sos_Object source);
  1113.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1114.    sos_Int hash_value();
  1115.    sos_Schema_type make_root_type();
  1116.    sos_Schema_type make_base_type();
  1117.    sos_Expr_List create_params();
  1118.    sos_Schema_type make_type();
  1119.    sos_String make_type_name();
  1120.    sos_Type type();
  1121.    sos_Bool has_type(sos_Type _p1);
  1122.    sos_Bool isa(sos_Type _p1);
  1123.    sos_Bool is_some(sos_Type _p1);
  1124.    sos_Bool is_value();
  1125.    sos_Int size();
  1126.    sos_Bool identical(sos_Object _p1);
  1127.    sos_Bool operator==(sos_Object _p1);
  1128.    sos_Bool operator!=(sos_Object _p1);
  1129.    sos_Bool like(sos_Object _p1);
  1130.    sos_Comp_result compare_ids(sos_Object _p1);
  1131. protected:
  1132.    static void local_assign(sos_Type_name x,sos_Type_name y);
  1133.    static sos_Bool local_equal(sos_Type_name x,sos_Type_name y,sos_Eq_kind eq_kind = EQ_STRONG);
  1134.    static sos_Int local_hash_value(sos_Type_name x);
  1135. };
  1136. #define _sos_Type_name_type sos_Id::make(sos_Container::make(279048),201728)
  1137. #define sos_Type_name_type sos_type_object(_sos_Type_name_type,sos_Id::make(sos_Container::make(279048),529560))
  1138. class sos_Schema_type: public sos_Root_class 
  1139. {  friend class _sos_Schema_type;
  1140.    class _sos_Schema_type* _ref;
  1141. public:
  1142.    operator sos_Object ();
  1143.    operator sos_Named ();
  1144.    operator sos_Type ();
  1145.    operator sos_Type_name ();
  1146.    static sos_Schema_type make(sos_Typed_id&);
  1147.    static sos_Schema_type make(sos_Typed_id&p,_sos_Schema_type*r){
  1148.    sos_Schema_type o; o._tpid = p; o._ref=r; return o;}
  1149.    static sos_Schema_type make(sos_Root_class&);
  1150.    sos_Offset _size();
  1151.    static sos_Schema_type create(sos_Container);
  1152.    static sos_Schema_type copy(sos_Schema_type,sos_Container);
  1153.    static sos_Schema_type clone(sos_Schema_type,sos_Container);
  1154.    void destroy();
  1155.    sos_Int hash_value();
  1156.    sos_Bool is_derived_from(sos_Type _p1);
  1157.    sos_Bool is_derived_from_some(sos_Type _p1);
  1158.    sos_Bool is_scalar();
  1159.    sos_String make_type_name();
  1160. protected:
  1161.    static sos_Bool total_equal(sos_Schema_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  1162. public:
  1163.    sos_Type root();
  1164.    sos_String get_name();
  1165.    void set_name(sos_String _p1);
  1166.    sos_Bool has_type(sos_Type _p1);
  1167.    sos_Bool isa(sos_Type _p1);
  1168.    sos_Bool operator==(sos_Object _p1);
  1169.    sos_Bool operator!=(sos_Object _p1);
  1170.    sos_Expr_List create_params();
  1171. protected:
  1172.    static void local_assign(sos_Schema_type x,sos_Schema_type y);
  1173.    static sos_Bool local_equal(sos_Schema_type x,sos_Schema_type y,sos_Eq_kind eq_kind = EQ_STRONG);
  1174. public:
  1175.    void assign(sos_Object source);
  1176.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1177.    sos_Type base();
  1178.    sos_Schema_type make_type();
  1179. protected:
  1180.    static sos_Int total_hash_value(sos_Schema_type _p1);
  1181. public:
  1182.    sos_Int get_object_size();
  1183.    void set_object_size(sos_Int _p1);
  1184.    sos_Type type();
  1185.    sos_Bool is_some(sos_Type _p1);
  1186.    sos_Bool is_value();
  1187.    sos_Int size();
  1188.    sos_Bool identical(sos_Object _p1);
  1189.    sos_Bool like(sos_Object _p1);
  1190.    sos_Comp_result compare_ids(sos_Object _p1);
  1191.    sos_Schema_type make_root_type();
  1192.    sos_Schema_type make_base_type();
  1193. protected:
  1194.    static sos_Int local_hash_value(sos_Schema_type x);
  1195. };
  1196. #define _sos_Schema_type_type sos_Id::make(sos_Container::make(279048),232192)
  1197. #define sos_Schema_type_type sos_type_object(_sos_Schema_type_type,sos_Id::make(sos_Container::make(279048),529560))
  1198. class sos_Unidentified_type: public sos_Root_class 
  1199. {  friend class _sos_Unidentified_type;
  1200.    class _sos_Unidentified_type* _ref;
  1201. public:
  1202.    operator sos_Object ();
  1203.    operator sos_Type_name ();
  1204.    operator sos_Named ();
  1205.    static sos_Unidentified_type make(sos_Typed_id&);
  1206.    static sos_Unidentified_type make(sos_Typed_id&p,_sos_Unidentified_type*r){
  1207.    sos_Unidentified_type o; o._tpid = p; o._ref=r; return o;}
  1208.    static sos_Unidentified_type make(sos_Root_class&);
  1209.    sos_Offset _size();
  1210.    static sos_Unidentified_type create(sos_Container);
  1211.    static sos_Unidentified_type copy(sos_Unidentified_type,sos_Container);
  1212.    static sos_Unidentified_type clone(sos_Unidentified_type,sos_Container);
  1213.    void destroy();
  1214.    void assign(sos_Object source);
  1215.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1216.    sos_Int hash_value();
  1217.    sos_Schema_type make_type();
  1218.    sos_String make_type_name();
  1219.    sos_String get_name();
  1220.    void set_name(sos_String _p1);
  1221.    sos_Schema_type make_root_type();
  1222.    sos_Schema_type make_base_type();
  1223.    sos_Expr_List create_params();
  1224.    sos_Type type();
  1225.    sos_Bool has_type(sos_Type _p1);
  1226.    sos_Bool isa(sos_Type _p1);
  1227.    sos_Bool is_some(sos_Type _p1);
  1228.    sos_Bool is_value();
  1229.    sos_Int size();
  1230.    sos_Bool identical(sos_Object _p1);
  1231.    sos_Bool operator==(sos_Object _p1);
  1232.    sos_Bool operator!=(sos_Object _p1);
  1233.    sos_Bool like(sos_Object _p1);
  1234.    sos_Comp_result compare_ids(sos_Object _p1);
  1235. protected:
  1236.    static void local_assign(sos_Unidentified_type x,sos_Unidentified_type y);
  1237.    static sos_Bool local_equal(sos_Unidentified_type x,sos_Unidentified_type y,sos_Eq_kind eq_kind = EQ_STRONG);
  1238.    static sos_Int local_hash_value(sos_Unidentified_type x);
  1239. };
  1240. #define _sos_Unidentified_type_type sos_Id::make(sos_Container::make(279048),242688)
  1241. #define sos_Unidentified_type_type sos_type_object(_sos_Unidentified_type_type,sos_Id::make(sos_Container::make(279048),529560))
  1242. class sos_Type_with_params: public sos_Root_class 
  1243. {  friend class _sos_Type_with_params;
  1244.    class _sos_Type_with_params* _ref;
  1245. public:
  1246.    operator sos_Object ();
  1247.    operator sos_Type_name ();
  1248.    static sos_Type_with_params make(sos_Typed_id&);
  1249.    static sos_Type_with_params make(sos_Typed_id&p,_sos_Type_with_params*r){
  1250.    sos_Type_with_params o; o._tpid = p; o._ref=r; return o;}
  1251.    static sos_Type_with_params make(sos_Root_class&);
  1252.    sos_Offset _size();
  1253.    static sos_Type_with_params create(sos_Container);
  1254.    static sos_Type_with_params copy(sos_Type_with_params,sos_Container);
  1255.    static sos_Type_with_params clone(sos_Type_with_params,sos_Container);
  1256.    void destroy();
  1257.    sos_Int hash_value();
  1258.    sos_Expr_List create_params();
  1259.    sos_String make_type_name();
  1260.    sos_Expr_List get_params();
  1261.    void set_params(sos_Expr_List _p1);
  1262.    sos_Bool has_type(sos_Type _p1);
  1263.    sos_Bool isa(sos_Type _p1);
  1264.    sos_Bool operator==(sos_Object _p1);
  1265.    sos_Bool operator!=(sos_Object _p1);
  1266. protected:
  1267.    static void local_assign(sos_Type_with_params x,sos_Type_with_params y);
  1268.    static sos_Bool local_equal(sos_Type_with_params x,sos_Type_with_params y,sos_Eq_kind eq_kind = EQ_STRONG);
  1269. public:
  1270.    void assign(sos_Object source);
  1271.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1272.    sos_Schema_type make_type();
  1273.    sos_Type_name get_type_name();
  1274.    void set_type_name(sos_Type_name _p1);
  1275.    sos_Schema_type make_root_type();
  1276.    sos_Schema_type make_base_type();
  1277.    sos_Type type();
  1278.    sos_Bool is_some(sos_Type _p1);
  1279.    sos_Bool is_value();
  1280.    sos_Int size();
  1281.    sos_Bool identical(sos_Object _p1);
  1282.    sos_Bool like(sos_Object _p1);
  1283.    sos_Comp_result compare_ids(sos_Object _p1);
  1284. protected:
  1285.    static sos_Int local_hash_value(sos_Type_with_params x);
  1286. };
  1287. #define _sos_Type_with_params_type sos_Id::make(sos_Container::make(279048),250296)
  1288. #define sos_Type_with_params_type sos_type_object(_sos_Type_with_params_type,sos_Id::make(sos_Container::make(279048),529560))
  1289. class sos_Type_name_Collection: public sos_Root_class 
  1290. {  friend class _sos_Object_Collection;
  1291.    class _sos_Object_Collection* _ref;
  1292. public:
  1293.    operator sos_Object ();
  1294.    operator sos_Aggregate ();
  1295.    operator sos_Object_Collection ();
  1296.    static sos_Type_name_Collection make(sos_Typed_id&);
  1297.    static sos_Type_name_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  1298.    sos_Type_name_Collection o; o._tpid = p; o._ref=r; return o;}
  1299.    static sos_Type_name_Collection make(sos_Root_class&);
  1300.    sos_Offset _size();
  1301.    static sos_Type_name_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  1302.    static sos_Type_name_Collection copy(sos_Type_name_Collection,sos_Container);
  1303.    static sos_Type_name_Collection clone(sos_Type_name_Collection,sos_Container);
  1304.    void destroy();
  1305.    sos_Int hash_value();
  1306.    sos_Bool is_element(sos_Type_name _p1);
  1307.    sos_Type_name get(sos_Cursor _p1);
  1308.    sos_Bool is_empty();
  1309.    sos_Int card();
  1310.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1311.    void close_cursor(sos_Cursor _p1);
  1312.    sos_Cursor duplicate(sos_Cursor _p1);
  1313.    sos_Bool is_valid(sos_Cursor _p1);
  1314.    void remove_at(sos_Cursor _p1);
  1315.    sos_Bool to_first(sos_Cursor _p1);
  1316.    sos_Bool to_last(sos_Cursor _p1);
  1317.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1318.    sos_Bool has_type(sos_Type _p1);
  1319.    sos_Bool isa(sos_Type _p1);
  1320.    sos_Bool operator==(sos_Object _p1);
  1321.    sos_Bool operator!=(sos_Object _p1);
  1322.    void assign(sos_Object source);
  1323.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1324.    void clear();
  1325.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1326.    sos_Type type();
  1327.    sos_Bool is_some(sos_Type _p1);
  1328.    sos_Bool is_value();
  1329.    sos_Int size();
  1330.    sos_Bool identical(sos_Object _p1);
  1331.    sos_Bool like(sos_Object _p1);
  1332.    sos_Comp_result compare_ids(sos_Object _p1);
  1333. };
  1334. #define _sos_Type_name_Collection_type sos_Id::make(sos_Container::make(279048),263660)
  1335. #define sos_Type_name_Collection_type sos_type_object(_sos_Type_name_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  1336. class sos_Type_name_List: public sos_Root_class 
  1337. {  friend class _sos_Object_List;
  1338.    class _sos_Object_List* _ref;
  1339. public:
  1340.    operator sos_Object ();
  1341.    operator sos_Aggregate ();
  1342.    operator sos_Type_name_Collection ();
  1343.    operator sos_Object_Collection ();
  1344.    operator sos_Object_List ();
  1345.    static sos_Type_name_List make(sos_Typed_id&);
  1346.    static sos_Type_name_List make(sos_Typed_id&p,_sos_Object_List*r){
  1347.    sos_Type_name_List o; o._tpid = p; o._ref=r; return o;}
  1348.    static sos_Type_name_List make(sos_Root_class&);
  1349.    sos_Offset _size();
  1350.    static sos_Type_name_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  1351.    static sos_Type_name_List copy(sos_Type_name_List,sos_Container);
  1352.    static sos_Type_name_List clone(sos_Type_name_List,sos_Container);
  1353.    void destroy();
  1354.    sos_Int hash_value();
  1355.    void operator+=(sos_Type_name_List _p1);
  1356.    void insert_after(sos_Cursor _p1,sos_Type_name _p2);
  1357.    void set(sos_Cursor _p1,sos_Type_name _p2);
  1358.    sos_Type_name get(sos_Cursor _p1);
  1359.    void remove_at(sos_Cursor _p1);
  1360.    sos_Int card();
  1361.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1362.    void close_cursor(sos_Cursor _p1);
  1363.    sos_Cursor duplicate(sos_Cursor _p1);
  1364.    sos_Bool is_valid(sos_Cursor _p1);
  1365.    sos_Bool to_first(sos_Cursor _p1);
  1366.    sos_Bool to_last(sos_Cursor _p1);
  1367.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1368.    sos_Bool is_element(sos_Type_name _p1);
  1369.    sos_Bool is_empty();
  1370.    sos_Bool has_type(sos_Type _p1);
  1371.    sos_Bool isa(sos_Type _p1);
  1372.    sos_Bool operator==(sos_Object _p1);
  1373.    sos_Bool operator!=(sos_Object _p1);
  1374.    void assign(sos_Object source);
  1375.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1376.    void append(sos_Type_name _p1);
  1377.    void insert(Index _p1,sos_Type_name _p2);
  1378.    Index current_pos(sos_Cursor _p1);
  1379.    void insert_before(sos_Cursor _p1,sos_Type_name _p2);
  1380.    void clear();
  1381.    sos_Type type();
  1382.    sos_Int size();
  1383.    sos_Bool like(sos_Object _p1);
  1384.    void remove(Index _p1);
  1385.    sos_Type_name get_nth(Index _p1);
  1386.    void set_nth(Index _p1,sos_Type_name _p2);
  1387.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  1388.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1389.    sos_Bool is_some(sos_Type _p1);
  1390.    sos_Bool is_value();
  1391.    sos_Bool identical(sos_Object _p1);
  1392.    sos_Comp_result compare_ids(sos_Object _p1);
  1393. };
  1394. #define _sos_Type_name_List_type sos_Id::make(sos_Container::make(279048),263320)
  1395. #define sos_Type_name_List_type sos_type_object(_sos_Type_name_List_type,sos_Id::make(sos_Container::make(279048),529560))
  1396. class sos_Generic_instantiation: public sos_Root_class 
  1397. {  friend class _sos_Generic_instantiation;
  1398.    class _sos_Generic_instantiation* _ref;
  1399. public:
  1400.    operator sos_Object ();
  1401.    operator sos_Type_name ();
  1402.    static sos_Generic_instantiation make(sos_Typed_id&);
  1403.    static sos_Generic_instantiation make(sos_Typed_id&p,_sos_Generic_instantiation*r){
  1404.    sos_Generic_instantiation o; o._tpid = p; o._ref=r; return o;}
  1405.    static sos_Generic_instantiation make(sos_Root_class&);
  1406.    sos_Offset _size();
  1407.    static sos_Generic_instantiation create(sos_Container);
  1408.    static sos_Generic_instantiation copy(sos_Generic_instantiation,sos_Container);
  1409.    static sos_Generic_instantiation clone(sos_Generic_instantiation,sos_Container);
  1410.    void destroy();
  1411.    sos_Int hash_value();
  1412.    sos_Bool is_universal();
  1413.    sos_String make_type_name();
  1414.    sos_Expr_List create_params();
  1415.    sos_Bool has_type(sos_Type _p1);
  1416.    sos_Bool isa(sos_Type _p1);
  1417.    sos_Bool operator==(sos_Object _p1);
  1418.    sos_Bool operator!=(sos_Object _p1);
  1419. protected:
  1420.    static void local_assign(sos_Generic_instantiation x,sos_Generic_instantiation y);
  1421.    static sos_Bool local_equal(sos_Generic_instantiation x,sos_Generic_instantiation y,sos_Eq_kind eq_kind = EQ_STRONG);
  1422. public:
  1423.    void assign(sos_Object source);
  1424.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1425.    sos_Schema_type make_type();
  1426.    sos_Class_type get_gen();
  1427.    void set_gen(sos_Class_type _p1);
  1428.    sos_Type_name_List get_gen_params();
  1429.    void set_gen_params(sos_Type_name_List _p1);
  1430.    sos_Class_type get_instantiation();
  1431.    void set_instantiation(sos_Class_type _p1);
  1432.    sos_Schema_type make_root_type();
  1433.    sos_Schema_type make_base_type();
  1434.    sos_Type type();
  1435.    sos_Bool is_some(sos_Type _p1);
  1436.    sos_Bool is_value();
  1437.    sos_Int size();
  1438.    sos_Bool identical(sos_Object _p1);
  1439.    sos_Bool like(sos_Object _p1);
  1440.    sos_Comp_result compare_ids(sos_Object _p1);
  1441. protected:
  1442.    static sos_Int local_hash_value(sos_Generic_instantiation x);
  1443. };
  1444. #define _sos_Generic_instantiation_type sos_Id::make(sos_Container::make(279048),258880)
  1445. #define sos_Generic_instantiation_type sos_type_object(_sos_Generic_instantiation_type,sos_Id::make(sos_Container::make(279048),529560))
  1446. class sos_Gen_param: public sos_Root_class 
  1447. {  friend class _sos_Gen_param;
  1448.    class _sos_Gen_param* _ref;
  1449. public:
  1450.    operator sos_Object ();
  1451.    operator sos_Type_name ();
  1452.    operator sos_Named ();
  1453.    static sos_Gen_param make(sos_Typed_id&);
  1454.    static sos_Gen_param make(sos_Typed_id&p,_sos_Gen_param*r){
  1455.    sos_Gen_param o; o._tpid = p; o._ref=r; return o;}
  1456.    static sos_Gen_param make(sos_Root_class&);
  1457.    sos_Offset _size();
  1458.    static sos_Gen_param create(sos_Container);
  1459.    static sos_Gen_param copy(sos_Gen_param,sos_Container);
  1460.    static sos_Gen_param clone(sos_Gen_param,sos_Container);
  1461.    void destroy();
  1462.    sos_Int hash_value();
  1463.    sos_String make_type_name();
  1464.    sos_String get_name();
  1465.    void set_name(sos_String _p1);
  1466.    sos_Type_name get_super_class();
  1467.    void set_super_class(sos_Type_name _p1);
  1468.    sos_Expr_List create_params();
  1469.    sos_Bool has_type(sos_Type _p1);
  1470.    sos_Bool isa(sos_Type _p1);
  1471.    sos_Bool operator==(sos_Object _p1);
  1472.    sos_Bool operator!=(sos_Object _p1);
  1473. protected:
  1474.    static void local_assign(sos_Gen_param x,sos_Gen_param y);
  1475.    static sos_Bool local_equal(sos_Gen_param x,sos_Gen_param y,sos_Eq_kind eq_kind = EQ_STRONG);
  1476. public:
  1477.    void assign(sos_Object source);
  1478.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1479.    sos_Schema_type make_type();
  1480.    sos_Schema_type make_root_type();
  1481.    sos_Schema_type make_base_type();
  1482.    sos_Type type();
  1483.    sos_Bool is_some(sos_Type _p1);
  1484.    sos_Bool is_value();
  1485.    sos_Int size();
  1486.    sos_Bool identical(sos_Object _p1);
  1487.    sos_Bool like(sos_Object _p1);
  1488.    sos_Comp_result compare_ids(sos_Object _p1);
  1489. protected:
  1490.    static sos_Int local_hash_value(sos_Gen_param x);
  1491. };
  1492. #define _sos_Gen_param_type sos_Id::make(sos_Container::make(279048),294160)
  1493. #define sos_Gen_param_type sos_type_object(_sos_Gen_param_type,sos_Id::make(sos_Container::make(279048),529560))
  1494. class sos_Param: public sos_Root_class 
  1495. {  friend class _sos_Param;
  1496.    class _sos_Param* _ref;
  1497. public:
  1498.    operator sos_Object ();
  1499.    operator sos_Named ();
  1500.    static sos_Param make(sos_Typed_id&);
  1501.    static sos_Param make(sos_Typed_id&p,_sos_Param*r){
  1502.    sos_Param o; o._tpid = p; o._ref=r; return o;}
  1503.    static sos_Param make(sos_Root_class&);
  1504.    sos_Offset _size();
  1505.    static sos_Param create(sos_Container);
  1506.    static sos_Param copy(sos_Param,sos_Container);
  1507.    static sos_Param clone(sos_Param,sos_Container);
  1508.    void destroy();
  1509.    sos_Int hash_value();
  1510.    sos_String get_name();
  1511.    void set_name(sos_String _p1);
  1512.    sos_Bool has_type(sos_Type _p1);
  1513.    sos_Bool isa(sos_Type _p1);
  1514.    sos_Bool operator==(sos_Object _p1);
  1515.    sos_Bool operator!=(sos_Object _p1);
  1516. protected:
  1517.    static void local_assign(sos_Param x,sos_Param y);
  1518.    static sos_Bool local_equal(sos_Param x,sos_Param y,sos_Eq_kind eq_kind = EQ_STRONG);
  1519. public:
  1520.    void assign(sos_Object source);
  1521.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1522.    sos_Type_name get_type_name();
  1523.    void set_type_name(sos_Type_name _p1);
  1524.    sos_Bool get_is_ref();
  1525.    void set_is_ref(sos_Bool _p1);
  1526.    sos_Expr get_default_expr();
  1527.    void set_default_expr(sos_Expr _p1);
  1528.    sos_Type type();
  1529.    sos_Bool is_some(sos_Type _p1);
  1530.    sos_Bool is_value();
  1531.    sos_Int size();
  1532.    sos_Bool identical(sos_Object _p1);
  1533.    sos_Bool like(sos_Object _p1);
  1534.    sos_Comp_result compare_ids(sos_Object _p1);
  1535. protected:
  1536.    static sos_Int local_hash_value(sos_Param x);
  1537. };
  1538. #define _sos_Param_type sos_Id::make(sos_Container::make(279048),303432)
  1539. #define sos_Param_type sos_type_object(_sos_Param_type,sos_Id::make(sos_Container::make(279048),529560))
  1540. inline void bcopy_from_sos_Method_kind (void *e,void *c)
  1541. {  *(sos_Char*)c = (sos_Char)*(sos_Method_kind*)e; }
  1542. inline void bcopy_to_sos_Method_kind (void *e,void *c)
  1543. {  *(sos_Method_kind*)e = (sos_Method_kind)*(sos_Char*)c; }
  1544. sos_Object make_sos_Method_kind_object(sos_Method_kind);
  1545. sos_Method_kind make_sos_Method_kind(sos_Object);
  1546. #define _sos_Method_kind_type sos_Id::make(sos_Container::make(279048),313392)
  1547. #define sos_Method_kind_type sos_type_object(_sos_Method_kind_type,sos_Id::make(sos_Container::make(279048),471440))
  1548. class sos_Param_Collection: public sos_Root_class 
  1549. {  friend class _sos_Object_Collection;
  1550.    class _sos_Object_Collection* _ref;
  1551. public:
  1552.    operator sos_Object ();
  1553.    operator sos_Aggregate ();
  1554.    operator sos_Object_Collection ();
  1555.    static sos_Param_Collection make(sos_Typed_id&);
  1556.    static sos_Param_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  1557.    sos_Param_Collection o; o._tpid = p; o._ref=r; return o;}
  1558.    static sos_Param_Collection make(sos_Root_class&);
  1559.    sos_Offset _size();
  1560.    static sos_Param_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  1561.    static sos_Param_Collection copy(sos_Param_Collection,sos_Container);
  1562.    static sos_Param_Collection clone(sos_Param_Collection,sos_Container);
  1563.    void destroy();
  1564.    sos_Int hash_value();
  1565.    sos_Bool is_element(sos_Param _p1);
  1566.    sos_Param get(sos_Cursor _p1);
  1567.    sos_Bool is_empty();
  1568.    sos_Int card();
  1569.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1570.    void close_cursor(sos_Cursor _p1);
  1571.    sos_Cursor duplicate(sos_Cursor _p1);
  1572.    sos_Bool is_valid(sos_Cursor _p1);
  1573.    void remove_at(sos_Cursor _p1);
  1574.    sos_Bool to_first(sos_Cursor _p1);
  1575.    sos_Bool to_last(sos_Cursor _p1);
  1576.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1577.    sos_Bool has_type(sos_Type _p1);
  1578.    sos_Bool isa(sos_Type _p1);
  1579.    sos_Bool operator==(sos_Object _p1);
  1580.    sos_Bool operator!=(sos_Object _p1);
  1581.    void assign(sos_Object source);
  1582.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1583.    void clear();
  1584.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1585.    sos_Type type();
  1586.    sos_Bool is_some(sos_Type _p1);
  1587.    sos_Bool is_value();
  1588.    sos_Int size();
  1589.    sos_Bool identical(sos_Object _p1);
  1590.    sos_Bool like(sos_Object _p1);
  1591.    sos_Comp_result compare_ids(sos_Object _p1);
  1592. };
  1593. #define _sos_Param_Collection_type sos_Id::make(sos_Container::make(279048),320512)
  1594. #define sos_Param_Collection_type sos_type_object(_sos_Param_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  1595. class sos_Param_List: public sos_Root_class 
  1596. {  friend class _sos_Object_List;
  1597.    class _sos_Object_List* _ref;
  1598. public:
  1599.    operator sos_Object ();
  1600.    operator sos_Aggregate ();
  1601.    operator sos_Param_Collection ();
  1602.    operator sos_Object_Collection ();
  1603.    operator sos_Object_List ();
  1604.    static sos_Param_List make(sos_Typed_id&);
  1605.    static sos_Param_List make(sos_Typed_id&p,_sos_Object_List*r){
  1606.    sos_Param_List o; o._tpid = p; o._ref=r; return o;}
  1607.    static sos_Param_List make(sos_Root_class&);
  1608.    sos_Offset _size();
  1609.    static sos_Param_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  1610.    static sos_Param_List copy(sos_Param_List,sos_Container);
  1611.    static sos_Param_List clone(sos_Param_List,sos_Container);
  1612.    void destroy();
  1613.    sos_Int hash_value();
  1614.    void operator+=(sos_Param_List _p1);
  1615.    void insert_after(sos_Cursor _p1,sos_Param _p2);
  1616.    void set(sos_Cursor _p1,sos_Param _p2);
  1617.    sos_Param get(sos_Cursor _p1);
  1618.    void remove_at(sos_Cursor _p1);
  1619.    sos_Int card();
  1620.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1621.    void close_cursor(sos_Cursor _p1);
  1622.    sos_Cursor duplicate(sos_Cursor _p1);
  1623.    sos_Bool is_valid(sos_Cursor _p1);
  1624.    sos_Bool to_first(sos_Cursor _p1);
  1625.    sos_Bool to_last(sos_Cursor _p1);
  1626.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1627.    sos_Bool is_element(sos_Param _p1);
  1628.    sos_Bool is_empty();
  1629.    sos_Bool has_type(sos_Type _p1);
  1630.    sos_Bool isa(sos_Type _p1);
  1631.    sos_Bool operator==(sos_Object _p1);
  1632.    sos_Bool operator!=(sos_Object _p1);
  1633.    void assign(sos_Object source);
  1634.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1635.    void append(sos_Param _p1);
  1636.    void insert(Index _p1,sos_Param _p2);
  1637.    Index current_pos(sos_Cursor _p1);
  1638.    void insert_before(sos_Cursor _p1,sos_Param _p2);
  1639.    void clear();
  1640.    sos_Type type();
  1641.    sos_Int size();
  1642.    sos_Bool like(sos_Object _p1);
  1643.    void remove(Index _p1);
  1644.    sos_Param get_nth(Index _p1);
  1645.    void set_nth(Index _p1,sos_Param _p2);
  1646.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  1647.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1648.    sos_Bool is_some(sos_Type _p1);
  1649.    sos_Bool is_value();
  1650.    sos_Bool identical(sos_Object _p1);
  1651.    sos_Comp_result compare_ids(sos_Object _p1);
  1652. };
  1653. #define _sos_Param_List_type sos_Id::make(sos_Container::make(279048),320176)
  1654. #define sos_Param_List_type sos_type_object(_sos_Param_List_type,sos_Id::make(sos_Container::make(279048),529560))
  1655. class sos_Method_impl_Collection: public sos_Root_class 
  1656. {  friend class _sos_Object_Collection;
  1657.    class _sos_Object_Collection* _ref;
  1658. public:
  1659.    operator sos_Object ();
  1660.    operator sos_Aggregate ();
  1661.    operator sos_Object_Collection ();
  1662.    static sos_Method_impl_Collection make(sos_Typed_id&);
  1663.    static sos_Method_impl_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  1664.    sos_Method_impl_Collection o; o._tpid = p; o._ref=r; return o;}
  1665.    static sos_Method_impl_Collection make(sos_Root_class&);
  1666.    sos_Offset _size();
  1667.    static sos_Method_impl_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  1668.    static sos_Method_impl_Collection copy(sos_Method_impl_Collection,sos_Container);
  1669.    static sos_Method_impl_Collection clone(sos_Method_impl_Collection,sos_Container);
  1670.    void destroy();
  1671.    sos_Int hash_value();
  1672.    sos_Bool is_element(sos_Method_impl _p1);
  1673.    sos_Method_impl get(sos_Cursor _p1);
  1674.    sos_Bool is_empty();
  1675.    sos_Int card();
  1676.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1677.    void close_cursor(sos_Cursor _p1);
  1678.    sos_Cursor duplicate(sos_Cursor _p1);
  1679.    sos_Bool is_valid(sos_Cursor _p1);
  1680.    void remove_at(sos_Cursor _p1);
  1681.    sos_Bool to_first(sos_Cursor _p1);
  1682.    sos_Bool to_last(sos_Cursor _p1);
  1683.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1684.    sos_Bool has_type(sos_Type _p1);
  1685.    sos_Bool isa(sos_Type _p1);
  1686.    sos_Bool operator==(sos_Object _p1);
  1687.    sos_Bool operator!=(sos_Object _p1);
  1688.    void assign(sos_Object source);
  1689.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1690.    void clear();
  1691.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1692.    sos_Type type();
  1693.    sos_Bool is_some(sos_Type _p1);
  1694.    sos_Bool is_value();
  1695.    sos_Int size();
  1696.    sos_Bool identical(sos_Object _p1);
  1697.    sos_Bool like(sos_Object _p1);
  1698.    sos_Comp_result compare_ids(sos_Object _p1);
  1699. };
  1700. #define _sos_Method_impl_Collection_type sos_Id::make(sos_Container::make(279048),344576)
  1701. #define sos_Method_impl_Collection_type sos_type_object(_sos_Method_impl_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  1702. class sos_Method_impl_List: public sos_Root_class 
  1703. {  friend class _sos_Object_List;
  1704.    class _sos_Object_List* _ref;
  1705. public:
  1706.    operator sos_Object ();
  1707.    operator sos_Aggregate ();
  1708.    operator sos_Method_impl_Collection ();
  1709.    operator sos_Object_Collection ();
  1710.    operator sos_Object_List ();
  1711.    static sos_Method_impl_List make(sos_Typed_id&);
  1712.    static sos_Method_impl_List make(sos_Typed_id&p,_sos_Object_List*r){
  1713.    sos_Method_impl_List o; o._tpid = p; o._ref=r; return o;}
  1714.    static sos_Method_impl_List make(sos_Root_class&);
  1715.    sos_Offset _size();
  1716.    static sos_Method_impl_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  1717.    static sos_Method_impl_List copy(sos_Method_impl_List,sos_Container);
  1718.    static sos_Method_impl_List clone(sos_Method_impl_List,sos_Container);
  1719.    void destroy();
  1720.    sos_Int hash_value();
  1721.    void operator+=(sos_Method_impl_List _p1);
  1722.    void insert_after(sos_Cursor _p1,sos_Method_impl _p2);
  1723.    void set(sos_Cursor _p1,sos_Method_impl _p2);
  1724.    sos_Method_impl get(sos_Cursor _p1);
  1725.    void remove_at(sos_Cursor _p1);
  1726.    sos_Int card();
  1727.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1728.    void close_cursor(sos_Cursor _p1);
  1729.    sos_Cursor duplicate(sos_Cursor _p1);
  1730.    sos_Bool is_valid(sos_Cursor _p1);
  1731.    sos_Bool to_first(sos_Cursor _p1);
  1732.    sos_Bool to_last(sos_Cursor _p1);
  1733.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1734.    sos_Bool is_element(sos_Method_impl _p1);
  1735.    sos_Bool is_empty();
  1736.    sos_Bool has_type(sos_Type _p1);
  1737.    sos_Bool isa(sos_Type _p1);
  1738.    sos_Bool operator==(sos_Object _p1);
  1739.    sos_Bool operator!=(sos_Object _p1);
  1740.    void assign(sos_Object source);
  1741.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1742.    void append(sos_Method_impl _p1);
  1743.    void insert(Index _p1,sos_Method_impl _p2);
  1744.    Index current_pos(sos_Cursor _p1);
  1745.    void insert_before(sos_Cursor _p1,sos_Method_impl _p2);
  1746.    void clear();
  1747.    sos_Type type();
  1748.    sos_Int size();
  1749.    sos_Bool like(sos_Object _p1);
  1750.    void remove(Index _p1);
  1751.    sos_Method_impl get_nth(Index _p1);
  1752.    void set_nth(Index _p1,sos_Method_impl _p2);
  1753.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  1754.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1755.    sos_Bool is_some(sos_Type _p1);
  1756.    sos_Bool is_value();
  1757.    sos_Bool identical(sos_Object _p1);
  1758.    sos_Comp_result compare_ids(sos_Object _p1);
  1759. };
  1760. #define _sos_Method_impl_List_type sos_Id::make(sos_Container::make(279048),344232)
  1761. #define sos_Method_impl_List_type sos_type_object(_sos_Method_impl_List_type,sos_Id::make(sos_Container::make(279048),529560))
  1762. class sos_Method: public sos_Root_class 
  1763. {  friend class _sos_Method;
  1764.    class _sos_Method* _ref;
  1765. public:
  1766.    operator sos_Object ();
  1767.    operator sos_Named ();
  1768.    static sos_Method make(sos_Typed_id&);
  1769.    static sos_Method make(sos_Typed_id&p,_sos_Method*r){
  1770.    sos_Method o; o._tpid = p; o._ref=r; return o;}
  1771.    static sos_Method make(sos_Root_class&);
  1772.    sos_Offset _size();
  1773.    static sos_Method create(sos_Container);
  1774.    static sos_Method copy(sos_Method,sos_Container);
  1775.    static sos_Method clone(sos_Method,sos_Container);
  1776.    void destroy();
  1777.    sos_Int hash_value();
  1778.    sos_Bool overloads(sos_Method _p1);
  1779.    sos_Bool redefines(sos_Method _p1);
  1780.    sos_String get_name();
  1781.    void set_name(sos_String _p1);
  1782.    sos_Bool get_is_abstract();
  1783.    void set_is_abstract(sos_Bool _p1);
  1784.    sos_Param_List get_params();
  1785.    void set_params(sos_Param_List _p1);
  1786.    sos_Type_name get_result_type();
  1787.    void set_result_type(sos_Type_name _p1);
  1788.    sos_Bool has_type(sos_Type _p1);
  1789.    sos_Bool isa(sos_Type _p1);
  1790.    sos_Bool operator==(sos_Object _p1);
  1791.    sos_Bool operator!=(sos_Object _p1);
  1792. protected:
  1793.    static void local_assign(sos_Method x,sos_Method y);
  1794.    static sos_Bool local_equal(sos_Method x,sos_Method y,sos_Eq_kind eq_kind = EQ_STRONG);
  1795. public:
  1796.    void assign(sos_Object source);
  1797.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1798.    sos_Object execute(sos_Object _p1,sos_Object_Array _p2);
  1799.    sos_Method_kind get_kind();
  1800.    void set_kind(sos_Method_kind _p1);
  1801.    sos_Bool get_is_static();
  1802.    void set_is_static(sos_Bool _p1);
  1803.    sos_Bool get_is_operator();
  1804.    void set_is_operator(sos_Bool _p1);
  1805.    sos_Bool get_is_predefined();
  1806.    void set_is_predefined(sos_Bool _p1);
  1807.    sos_Method get_generated_from();
  1808.    void set_generated_from(sos_Method _p1);
  1809.    sos_Class_type get_defined_in();
  1810.    void set_defined_in(sos_Class_type _p1);
  1811.    sos_Method_impl_List get_impls();
  1812.    void set_impls(sos_Method_impl_List _p1);
  1813.    sos_Type type();
  1814.    sos_Bool is_some(sos_Type _p1);
  1815.    sos_Bool is_value();
  1816.    sos_Int size();
  1817.    sos_Bool identical(sos_Object _p1);
  1818.    sos_Bool like(sos_Object _p1);
  1819.    sos_Comp_result compare_ids(sos_Object _p1);
  1820. protected:
  1821.    static sos_Int local_hash_value(sos_Method x);
  1822. };
  1823. #define _sos_Method_type sos_Id::make(sos_Container::make(279048),313484)
  1824. #define sos_Method_type sos_type_object(_sos_Method_type,sos_Id::make(sos_Container::make(279048),529560))
  1825. class sos_Method_Collection: public sos_Root_class 
  1826. {  friend class _sos_Object_Collection;
  1827.    class _sos_Object_Collection* _ref;
  1828. public:
  1829.    operator sos_Object ();
  1830.    operator sos_Aggregate ();
  1831.    operator sos_Object_Collection ();
  1832.    static sos_Method_Collection make(sos_Typed_id&);
  1833.    static sos_Method_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  1834.    sos_Method_Collection o; o._tpid = p; o._ref=r; return o;}
  1835.    static sos_Method_Collection make(sos_Root_class&);
  1836.    sos_Offset _size();
  1837.    static sos_Method_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  1838.    static sos_Method_Collection copy(sos_Method_Collection,sos_Container);
  1839.    static sos_Method_Collection clone(sos_Method_Collection,sos_Container);
  1840.    void destroy();
  1841.    sos_Int hash_value();
  1842.    sos_Bool is_element(sos_Method _p1);
  1843.    sos_Method get(sos_Cursor _p1);
  1844.    sos_Bool is_empty();
  1845.    sos_Int card();
  1846.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1847.    void close_cursor(sos_Cursor _p1);
  1848.    sos_Cursor duplicate(sos_Cursor _p1);
  1849.    sos_Bool is_valid(sos_Cursor _p1);
  1850.    void remove_at(sos_Cursor _p1);
  1851.    sos_Bool to_first(sos_Cursor _p1);
  1852.    sos_Bool to_last(sos_Cursor _p1);
  1853.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1854.    sos_Bool has_type(sos_Type _p1);
  1855.    sos_Bool isa(sos_Type _p1);
  1856.    sos_Bool operator==(sos_Object _p1);
  1857.    sos_Bool operator!=(sos_Object _p1);
  1858.    void assign(sos_Object source);
  1859.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1860.    void clear();
  1861.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1862.    sos_Type type();
  1863.    sos_Bool is_some(sos_Type _p1);
  1864.    sos_Bool is_value();
  1865.    sos_Int size();
  1866.    sos_Bool identical(sos_Object _p1);
  1867.    sos_Bool like(sos_Object _p1);
  1868.    sos_Comp_result compare_ids(sos_Object _p1);
  1869. };
  1870. #define _sos_Method_Collection_type sos_Id::make(sos_Container::make(279048),375376)
  1871. #define sos_Method_Collection_type sos_type_object(_sos_Method_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  1872. class sos_Method_List: public sos_Root_class 
  1873. {  friend class _sos_Object_List;
  1874.    class _sos_Object_List* _ref;
  1875. public:
  1876.    operator sos_Object ();
  1877.    operator sos_Aggregate ();
  1878.    operator sos_Method_Collection ();
  1879.    operator sos_Object_Collection ();
  1880.    operator sos_Object_List ();
  1881.    static sos_Method_List make(sos_Typed_id&);
  1882.    static sos_Method_List make(sos_Typed_id&p,_sos_Object_List*r){
  1883.    sos_Method_List o; o._tpid = p; o._ref=r; return o;}
  1884.    static sos_Method_List make(sos_Root_class&);
  1885.    sos_Offset _size();
  1886.    static sos_Method_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  1887.    static sos_Method_List copy(sos_Method_List,sos_Container);
  1888.    static sos_Method_List clone(sos_Method_List,sos_Container);
  1889.    void destroy();
  1890.    sos_Int hash_value();
  1891.    void operator+=(sos_Method_List _p1);
  1892.    void insert_after(sos_Cursor _p1,sos_Method _p2);
  1893.    void set(sos_Cursor _p1,sos_Method _p2);
  1894.    sos_Method get(sos_Cursor _p1);
  1895.    void remove_at(sos_Cursor _p1);
  1896.    sos_Int card();
  1897.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1898.    void close_cursor(sos_Cursor _p1);
  1899.    sos_Cursor duplicate(sos_Cursor _p1);
  1900.    sos_Bool is_valid(sos_Cursor _p1);
  1901.    sos_Bool to_first(sos_Cursor _p1);
  1902.    sos_Bool to_last(sos_Cursor _p1);
  1903.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1904.    sos_Bool is_element(sos_Method _p1);
  1905.    sos_Bool is_empty();
  1906.    sos_Bool has_type(sos_Type _p1);
  1907.    sos_Bool isa(sos_Type _p1);
  1908.    sos_Bool operator==(sos_Object _p1);
  1909.    sos_Bool operator!=(sos_Object _p1);
  1910.    void assign(sos_Object source);
  1911.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1912.    void append(sos_Method _p1);
  1913.    void insert(Index _p1,sos_Method _p2);
  1914.    Index current_pos(sos_Cursor _p1);
  1915.    void insert_before(sos_Cursor _p1,sos_Method _p2);
  1916.    void clear();
  1917.    sos_Type type();
  1918.    sos_Int size();
  1919.    sos_Bool like(sos_Object _p1);
  1920.    void remove(Index _p1);
  1921.    sos_Method get_nth(Index _p1);
  1922.    void set_nth(Index _p1,sos_Method _p2);
  1923.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  1924.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1925.    sos_Bool is_some(sos_Type _p1);
  1926.    sos_Bool is_value();
  1927.    sos_Bool identical(sos_Object _p1);
  1928.    sos_Comp_result compare_ids(sos_Object _p1);
  1929. };
  1930. #define _sos_Method_List_type sos_Id::make(sos_Container::make(279048),375036)
  1931. #define sos_Method_List_type sos_type_object(_sos_Method_List_type,sos_Id::make(sos_Container::make(279048),529560))
  1932. class sos_String_sos_Method_List_Association: public sos_Root_class 
  1933. {  friend class _sos_Object_sos_Object_Association;
  1934.    class _sos_Object_sos_Object_Association* _ref;
  1935. public:
  1936.    operator sos_Object ();
  1937.    operator sos_Aggregate ();
  1938.    operator sos_Object_sos_Object_Association ();
  1939.    static sos_String_sos_Method_List_Association make(sos_Typed_id&);
  1940.    static sos_String_sos_Method_List_Association make(sos_Typed_id&p,_sos_Object_sos_Object_Association*r){
  1941.    sos_String_sos_Method_List_Association o; o._tpid = p; o._ref=r; return o;}
  1942.    static sos_String_sos_Method_List_Association make(sos_Root_class&);
  1943.    sos_Offset _size();
  1944.    static sos_String_sos_Method_List_Association create(sos_Container,sos_Bool role1_based_on_equal = FALSE,sos_Bool role2_based_on_equal = FALSE);
  1945.    static sos_String_sos_Method_List_Association copy(sos_String_sos_Method_List_Association,sos_Container);
  1946.    static sos_String_sos_Method_List_Association clone(sos_String_sos_Method_List_Association,sos_Container);
  1947.    void destroy();
  1948.    sos_Int hash_value();
  1949.    sos_Bool is_role2(sos_Method_List _p1);
  1950.    sos_String get_role1(sos_Cursor _p1);
  1951.    sos_Method_List get_role2(sos_Cursor _p1);
  1952.    sos_Bool is_empty();
  1953.    sos_Int card();
  1954.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  1955.    void close_cursor(sos_Cursor _p1);
  1956.    sos_Cursor duplicate(sos_Cursor _p1);
  1957.    sos_Bool is_valid(sos_Cursor _p1);
  1958.    void remove_at(sos_Cursor _p1);
  1959.    sos_Bool to_first(sos_Cursor _p1);
  1960.    sos_Bool to_last(sos_Cursor _p1);
  1961.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  1962.    sos_Bool has_type(sos_Type _p1);
  1963.    sos_Bool isa(sos_Type _p1);
  1964.    sos_Bool operator==(sos_Object _p1);
  1965.    sos_Bool operator!=(sos_Object _p1);
  1966.    void assign(sos_Object source);
  1967.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  1968.    sos_Bool is_role1(sos_String _p1);
  1969.    void clear();
  1970.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  1971.    sos_Type type();
  1972.    sos_Bool is_some(sos_Type _p1);
  1973.    sos_Bool is_value();
  1974.    sos_Int size();
  1975.    sos_Bool identical(sos_Object _p1);
  1976.    sos_Bool like(sos_Object _p1);
  1977.    sos_Comp_result compare_ids(sos_Object _p1);
  1978. };
  1979. #define _sos_String_sos_Method_List_Association_type sos_Id::make(sos_Container::make(279048),398600)
  1980. #define sos_String_sos_Method_List_Association_type sos_type_object(_sos_String_sos_Method_List_Association_type,sos_Id::make(sos_Container::make(279048),529560))
  1981. class sos_String_sos_Method_List_Mapping: public sos_Root_class 
  1982. {  friend class _sos_Object_sos_Object_Mapping;
  1983.    class _sos_Object_sos_Object_Mapping* _ref;
  1984. public:
  1985.    operator sos_Object ();
  1986.    operator sos_Aggregate ();
  1987.    operator sos_String_sos_Method_List_Association ();
  1988.    operator sos_Object_sos_Object_Association ();
  1989.    operator sos_Object_sos_Object_Mapping ();
  1990.    static sos_String_sos_Method_List_Mapping make(sos_Typed_id&);
  1991.    static sos_String_sos_Method_List_Mapping make(sos_Typed_id&p,_sos_Object_sos_Object_Mapping*r){
  1992.    sos_String_sos_Method_List_Mapping o; o._tpid = p; o._ref=r; return o;}
  1993.    static sos_String_sos_Method_List_Mapping make(sos_Root_class&);
  1994.    sos_Offset _size();
  1995.    static sos_String_sos_Method_List_Mapping create(sos_Container,sos_Bool list_cursor = FALSE,sos_Bool key_based_on_equal = FALSE,sos_Bool info_based_on_equal = FALSE);
  1996.    static sos_String_sos_Method_List_Mapping copy(sos_String_sos_Method_List_Mapping,sos_Container);
  1997.    static sos_String_sos_Method_List_Mapping clone(sos_String_sos_Method_List_Mapping,sos_Container);
  1998.    void destroy();
  1999.    sos_Int hash_value();
  2000.    sos_Method_List operator[](sos_String _p1);
  2001.    sos_Method_List get_info(sos_Cursor _p1);
  2002.    void set_info(sos_Cursor _p1,sos_Method_List _p2);
  2003.    sos_Bool is_role2(sos_Method_List _p1);
  2004.    sos_Int card();
  2005.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2006.    void close_cursor(sos_Cursor _p1);
  2007.    sos_Cursor duplicate(sos_Cursor _p1);
  2008.    sos_Bool to_last(sos_Cursor _p1);
  2009.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2010.    sos_Bool is_empty();
  2011.    sos_Bool isa(sos_Type _p1);
  2012.    sos_Bool operator==(sos_Object _p1);
  2013.    sos_Bool operator!=(sos_Object _p1);
  2014.    void assign(sos_Object source);
  2015.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2016.    sos_Bool is_info(sos_Method_List _p1);
  2017.    void clear();
  2018.    void insert_after(sos_Cursor _p1,sos_String _p2,sos_Method_List _p3);
  2019.    sos_String get_role1(sos_Cursor _p1);
  2020.    sos_Method_List get_role2(sos_Cursor _p1);
  2021.    void remove_at(sos_Cursor _p1);
  2022.    sos_Bool is_valid(sos_Cursor _p1);
  2023.    sos_Bool to_first(sos_Cursor _p1);
  2024.    sos_Bool has_type(sos_Type _p1);
  2025.    sos_Bool is_key(sos_String _p1);
  2026.    void remove(sos_String _p1);
  2027.    sos_String get_key(sos_Cursor _p1);
  2028.    void move_cursor(sos_Cursor _p1,sos_String _p2);
  2029.    sos_Bool is_role1(sos_String _p1);
  2030.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2031.    sos_Bool is_some(sos_Type _p1);
  2032.    sos_Bool is_value();
  2033.    sos_Bool identical(sos_Object _p1);
  2034.    sos_Comp_result compare_ids(sos_Object _p1);
  2035.    void insert(sos_String _p1,sos_Method_List _p2);
  2036.    void insert_before(sos_Cursor _p1,sos_String _p2,sos_Method_List _p3);
  2037.    sos_Int size();
  2038.    sos_Type type();
  2039.    sos_Bool like(sos_Object _p1);
  2040. };
  2041. #define _sos_String_sos_Method_List_Mapping_type sos_Id::make(sos_Container::make(279048),398424)
  2042. #define sos_String_sos_Method_List_Mapping_type sos_type_object(_sos_String_sos_Method_List_Mapping_type,sos_Id::make(sos_Container::make(279048),529560))
  2043. class sos_Method_table: public sos_Root_class 
  2044. {  friend class _sos_Method_table;
  2045.    class _sos_Method_table* _ref;
  2046. public:
  2047.    operator sos_Object ();
  2048.    operator sos_Aggregate ();
  2049.    operator sos_String_sos_Method_List_Association ();
  2050.    operator sos_Object_sos_Object_Association ();
  2051.    operator sos_String_sos_Method_List_Mapping ();
  2052.    operator sos_Object_sos_Object_Mapping ();
  2053.    static sos_Method_table make(sos_Typed_id&);
  2054.    static sos_Method_table make(sos_Typed_id&p,_sos_Method_table*r){
  2055.    sos_Method_table o; o._tpid = p; o._ref=r; return o;}
  2056.    static sos_Method_table make(sos_Root_class&);
  2057.    sos_Offset _size();
  2058.    static sos_Method_table create(sos_Container);
  2059.    static sos_Method_table copy(sos_Method_table,sos_Container);
  2060.    static sos_Method_table clone(sos_Method_table,sos_Container);
  2061.    void destroy();
  2062.    sos_Int hash_value();
  2063.    sos_Method lookup_or_add(sos_Method _p1);
  2064.    sos_Comp_method lookup_comp(sos_String _p1,sos_Bool is_set);
  2065.    sos_Method_List operator[](sos_String _p1);
  2066.    sos_Method_List get_info(sos_Cursor _p1);
  2067.    void set_info(sos_Cursor _p1,sos_Method_List _p2);
  2068.    sos_Bool is_role2(sos_Method_List _p1);
  2069.    sos_Int card();
  2070.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2071.    void close_cursor(sos_Cursor _p1);
  2072.    sos_Cursor duplicate(sos_Cursor _p1);
  2073.    sos_Bool to_last(sos_Cursor _p1);
  2074.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2075.    sos_Bool is_empty();
  2076.    sos_Bool isa(sos_Type _p1);
  2077.    sos_Bool operator==(sos_Object _p1);
  2078.    sos_Bool operator!=(sos_Object _p1);
  2079. protected:
  2080.    static void local_assign(sos_Method_table x,sos_Method_table y);
  2081.    static sos_Bool local_equal(sos_Method_table x,sos_Method_table y,sos_Eq_kind eq_kind = EQ_STRONG);
  2082. public:
  2083.    void assign(sos_Object source);
  2084.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2085.    sos_Method lookup(sos_Method _p1);
  2086.    sos_Bool is_info(sos_Method_List _p1);
  2087.    void clear();
  2088.    sos_Bool is_key(sos_String _p1);
  2089.    void remove(sos_String _p1);
  2090.    sos_String get_key(sos_Cursor _p1);
  2091.    void move_cursor(sos_Cursor _p1,sos_String _p2);
  2092.    sos_Bool is_role1(sos_String _p1);
  2093.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2094.    sos_Bool is_some(sos_Type _p1);
  2095.    sos_Bool is_value();
  2096.    sos_Bool identical(sos_Object _p1);
  2097.    sos_Comp_result compare_ids(sos_Object _p1);
  2098.    void insert(sos_String _p1,sos_Method_List _p2);
  2099.    void insert_before(sos_Cursor _p1,sos_String _p2,sos_Method_List _p3);
  2100.    sos_Int size();
  2101. protected:
  2102.    sos_Bool get_role1_based_on_equal();
  2103.    void set_role1_based_on_equal(sos_Bool _p1);
  2104.    sos_Bool get_role2_based_on_equal();
  2105.    void set_role2_based_on_equal(sos_Bool _p1);
  2106. public:
  2107.    sos_Type type();
  2108.    sos_Bool like(sos_Object _p1);
  2109. protected:
  2110.    static sos_Int local_hash_value(sos_Method_table x);
  2111. public:
  2112.    sos_Method replace_or_add(sos_Method _p1);
  2113.    void insert_after(sos_Cursor _p1,sos_String _p2,sos_Method_List _p3);
  2114.    sos_String get_role1(sos_Cursor _p1);
  2115.    sos_Method_List get_role2(sos_Cursor _p1);
  2116.    void remove_at(sos_Cursor _p1);
  2117.    sos_Bool is_valid(sos_Cursor _p1);
  2118.    sos_Bool to_first(sos_Cursor _p1);
  2119.    sos_Bool has_type(sos_Type _p1);
  2120. };
  2121. #define _sos_Method_table_type sos_Id::make(sos_Container::make(279048),374784)
  2122. #define sos_Method_table_type sos_type_object(_sos_Method_table_type,sos_Id::make(sos_Container::make(279048),529560))
  2123. class sos_Comp_method: public sos_Root_class 
  2124. {  friend class _sos_Comp_method;
  2125.    class _sos_Comp_method* _ref;
  2126. public:
  2127.    operator sos_Object ();
  2128.    operator sos_Named ();
  2129.    operator sos_Method ();
  2130.    static sos_Comp_method make(sos_Typed_id&);
  2131.    static sos_Comp_method make(sos_Typed_id&p,_sos_Comp_method*r){
  2132.    sos_Comp_method o; o._tpid = p; o._ref=r; return o;}
  2133.    static sos_Comp_method make(sos_Root_class&);
  2134.    sos_Offset _size();
  2135.    static sos_Comp_method create(sos_Container);
  2136.    static sos_Comp_method copy(sos_Comp_method,sos_Container);
  2137.    static sos_Comp_method clone(sos_Comp_method,sos_Container);
  2138.    void destroy();
  2139.    sos_Int hash_value();
  2140.    sos_Bool get_is_set();
  2141.    void set_is_set(sos_Bool _p1);
  2142.    sos_Bool get_is_value();
  2143.    void set_is_value(sos_Bool _p1);
  2144.    sos_Int get_offset();
  2145.    void set_offset(sos_Int _p1);
  2146.    sos_Bool overloads(sos_Method _p1);
  2147.    sos_Bool redefines(sos_Method _p1);
  2148.    sos_String get_name();
  2149.    void set_name(sos_String _p1);
  2150.    sos_Bool get_is_abstract();
  2151.    void set_is_abstract(sos_Bool _p1);
  2152.    sos_Param_List get_params();
  2153.    void set_params(sos_Param_List _p1);
  2154.    sos_Type_name get_result_type();
  2155.    void set_result_type(sos_Type_name _p1);
  2156.    sos_Bool has_type(sos_Type _p1);
  2157.    sos_Bool isa(sos_Type _p1);
  2158.    sos_Bool operator==(sos_Object _p1);
  2159.    sos_Bool operator!=(sos_Object _p1);
  2160. protected:
  2161.    static void local_assign(sos_Comp_method x,sos_Comp_method y);
  2162.    static sos_Bool local_equal(sos_Comp_method x,sos_Comp_method y,sos_Eq_kind eq_kind = EQ_STRONG);
  2163. public:
  2164.    void assign(sos_Object source);
  2165.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2166.    sos_Bool get_is_static();
  2167.    void set_is_static(sos_Bool _p1);
  2168.    sos_Bool get_is_operator();
  2169.    void set_is_operator(sos_Bool _p1);
  2170.    sos_Method get_generated_from();
  2171.    void set_generated_from(sos_Method _p1);
  2172.    sos_Class_type get_defined_in();
  2173.    void set_defined_in(sos_Class_type _p1);
  2174.    sos_Type type();
  2175.    sos_Int size();
  2176.    sos_Bool like(sos_Object _p1);
  2177.    sos_Expr get_init_expr();
  2178.    void set_init_expr(sos_Expr _p1);
  2179.    sos_Bool get_is_local();
  2180.    void set_is_local(sos_Bool _p1);
  2181.    sos_Object execute(sos_Object _p1,sos_Object_Array _p2);
  2182.    sos_Method_kind get_kind();
  2183.    void set_kind(sos_Method_kind _p1);
  2184.    sos_Bool get_is_predefined();
  2185.    void set_is_predefined(sos_Bool _p1);
  2186.    sos_Method_impl_List get_impls();
  2187.    void set_impls(sos_Method_impl_List _p1);
  2188.    sos_Bool is_some(sos_Type _p1);
  2189.    sos_Bool is_value();
  2190.    sos_Bool identical(sos_Object _p1);
  2191.    sos_Comp_result compare_ids(sos_Object _p1);
  2192. protected:
  2193.    static sos_Int local_hash_value(sos_Comp_method x);
  2194. };
  2195. #define _sos_Comp_method_type sos_Id::make(sos_Container::make(279048),438992)
  2196. #define sos_Comp_method_type sos_type_object(_sos_Comp_method_type,sos_Id::make(sos_Container::make(279048),529560))
  2197. class sos_Union_type: public sos_Root_class 
  2198. {  friend class _sos_Union_type;
  2199.    class _sos_Union_type* _ref;
  2200. public:
  2201.    operator sos_Object ();
  2202.    operator sos_Named ();
  2203.    operator sos_Type ();
  2204.    operator sos_Type_name ();
  2205.    operator sos_Schema_type ();
  2206.    static sos_Union_type make(sos_Typed_id&);
  2207.    static sos_Union_type make(sos_Typed_id&p,_sos_Union_type*r){
  2208.    sos_Union_type o; o._tpid = p; o._ref=r; return o;}
  2209.    static sos_Union_type make(sos_Root_class&);
  2210.    sos_Offset _size();
  2211.    static sos_Union_type create(sos_Container);
  2212.    static sos_Union_type copy(sos_Union_type,sos_Container);
  2213.    static sos_Union_type clone(sos_Union_type,sos_Container);
  2214.    void destroy();
  2215.    sos_Int hash_value();
  2216. protected:
  2217.    static sos_Bool local_equal(sos_Union_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  2218. public:
  2219.    sos_Bool is_derived_from(sos_Type _p1);
  2220.    sos_Bool is_derived_from_some(sos_Type _p1);
  2221.    sos_Bool is_scalar();
  2222.    sos_String make_type_name();
  2223.    sos_Type root();
  2224.    sos_String get_name();
  2225.    void set_name(sos_String _p1);
  2226.    sos_Bool has_type(sos_Type _p1);
  2227.    sos_Bool isa(sos_Type _p1);
  2228.    sos_Bool operator==(sos_Object _p1);
  2229.    sos_Bool operator!=(sos_Object _p1);
  2230.    sos_Expr_List create_params();
  2231. protected:
  2232.    static void local_assign(sos_Union_type x,sos_Union_type y);
  2233. public:
  2234.    void assign(sos_Object source);
  2235.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2236.    sos_Type_name_List get_uniteds();
  2237.    void set_uniteds(sos_Type_name_List _p1);
  2238. protected:
  2239.    static sos_Int local_hash_value(sos_Union_type _p1);
  2240. public:
  2241.    sos_Type base();
  2242.    sos_Schema_type make_type();
  2243.    sos_Int get_object_size();
  2244.    void set_object_size(sos_Int _p1);
  2245.    sos_Type type();
  2246.    sos_Bool is_some(sos_Type _p1);
  2247.    sos_Bool is_value();
  2248.    sos_Int size();
  2249.    sos_Bool identical(sos_Object _p1);
  2250.    sos_Bool like(sos_Object _p1);
  2251.    sos_Comp_result compare_ids(sos_Object _p1);
  2252.    sos_Schema_type make_root_type();
  2253.    sos_Schema_type make_base_type();
  2254. };
  2255. #define _sos_Union_type_type sos_Id::make(sos_Container::make(279048),452848)
  2256. #define sos_Union_type_type sos_type_object(_sos_Union_type_type,sos_Id::make(sos_Container::make(279048),529560))
  2257. class sos_Typedef_type: public sos_Root_class 
  2258. {  friend class _sos_Typedef_type;
  2259.    class _sos_Typedef_type* _ref;
  2260. public:
  2261.    operator sos_Object ();
  2262.    operator sos_Named ();
  2263.    operator sos_Type ();
  2264.    operator sos_Type_name ();
  2265.    operator sos_Schema_type ();
  2266.    static sos_Typedef_type make(sos_Typed_id&);
  2267.    static sos_Typedef_type make(sos_Typed_id&p,_sos_Typedef_type*r){
  2268.    sos_Typedef_type o; o._tpid = p; o._ref=r; return o;}
  2269.    static sos_Typedef_type make(sos_Root_class&);
  2270.    sos_Offset _size();
  2271.    static sos_Typedef_type create(sos_Container);
  2272.    static sos_Typedef_type copy(sos_Typedef_type,sos_Container);
  2273.    static sos_Typedef_type clone(sos_Typedef_type,sos_Container);
  2274.    void destroy();
  2275.    sos_Int hash_value();
  2276. protected:
  2277.    static sos_Bool local_equal(sos_Typedef_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  2278. public:
  2279.    sos_Bool is_derived_from(sos_Type _p1);
  2280.    sos_Bool is_derived_from_some(sos_Type _p1);
  2281.    sos_Bool is_scalar();
  2282.    sos_String make_type_name();
  2283.    sos_Type root();
  2284.    sos_String get_name();
  2285.    void set_name(sos_String _p1);
  2286.    sos_Bool has_type(sos_Type _p1);
  2287.    sos_Bool isa(sos_Type _p1);
  2288.    sos_Bool operator==(sos_Object _p1);
  2289.    sos_Bool operator!=(sos_Object _p1);
  2290.    sos_Expr_List create_params();
  2291. protected:
  2292.    static void local_assign(sos_Typedef_type x,sos_Typedef_type y);
  2293. public:
  2294.    void assign(sos_Object source);
  2295.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2296.    sos_Schema_type make_base_type();
  2297.    sos_Type_name get_type_name();
  2298.    void set_type_name(sos_Type_name _p1);
  2299. protected:
  2300.    static sos_Int local_hash_value(sos_Typedef_type _p1);
  2301. public:
  2302.    sos_Type base();
  2303.    sos_Schema_type make_type();
  2304.    sos_Int get_object_size();
  2305.    void set_object_size(sos_Int _p1);
  2306.    sos_Type type();
  2307.    sos_Bool is_some(sos_Type _p1);
  2308.    sos_Bool is_value();
  2309.    sos_Int size();
  2310.    sos_Bool identical(sos_Object _p1);
  2311.    sos_Bool like(sos_Object _p1);
  2312.    sos_Comp_result compare_ids(sos_Object _p1);
  2313.    sos_Schema_type make_root_type();
  2314. };
  2315. #define _sos_Typedef_type_type sos_Id::make(sos_Container::make(279048),462256)
  2316. #define sos_Typedef_type_type sos_type_object(_sos_Typedef_type_type,sos_Id::make(sos_Container::make(279048),529560))
  2317. class sos_String_Collection: public sos_Root_class 
  2318. {  friend class _sos_Object_Collection;
  2319.    class _sos_Object_Collection* _ref;
  2320. public:
  2321.    operator sos_Object ();
  2322.    operator sos_Aggregate ();
  2323.    operator sos_Object_Collection ();
  2324.    static sos_String_Collection make(sos_Typed_id&);
  2325.    static sos_String_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  2326.    sos_String_Collection o; o._tpid = p; o._ref=r; return o;}
  2327.    static sos_String_Collection make(sos_Root_class&);
  2328.    sos_Offset _size();
  2329.    static sos_String_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  2330.    static sos_String_Collection copy(sos_String_Collection,sos_Container);
  2331.    static sos_String_Collection clone(sos_String_Collection,sos_Container);
  2332.    void destroy();
  2333.    sos_Int hash_value();
  2334.    sos_Bool is_element(sos_String _p1);
  2335.    sos_String get(sos_Cursor _p1);
  2336.    sos_Bool is_empty();
  2337.    sos_Int card();
  2338.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2339.    void close_cursor(sos_Cursor _p1);
  2340.    sos_Cursor duplicate(sos_Cursor _p1);
  2341.    sos_Bool is_valid(sos_Cursor _p1);
  2342.    void remove_at(sos_Cursor _p1);
  2343.    sos_Bool to_first(sos_Cursor _p1);
  2344.    sos_Bool to_last(sos_Cursor _p1);
  2345.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2346.    sos_Bool has_type(sos_Type _p1);
  2347.    sos_Bool isa(sos_Type _p1);
  2348.    sos_Bool operator==(sos_Object _p1);
  2349.    sos_Bool operator!=(sos_Object _p1);
  2350.    void assign(sos_Object source);
  2351.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2352.    void clear();
  2353.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2354.    sos_Type type();
  2355.    sos_Bool is_some(sos_Type _p1);
  2356.    sos_Bool is_value();
  2357.    sos_Int size();
  2358.    sos_Bool identical(sos_Object _p1);
  2359.    sos_Bool like(sos_Object _p1);
  2360.    sos_Comp_result compare_ids(sos_Object _p1);
  2361. };
  2362. #define _sos_String_Collection_type sos_Id::make(sos_Container::make(279048),474512)
  2363. #define sos_String_Collection_type sos_type_object(_sos_String_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  2364. class sos_String_List: public sos_Root_class 
  2365. {  friend class _sos_Object_List;
  2366.    class _sos_Object_List* _ref;
  2367. public:
  2368.    operator sos_Object ();
  2369.    operator sos_Aggregate ();
  2370.    operator sos_String_Collection ();
  2371.    operator sos_Object_Collection ();
  2372.    operator sos_Object_List ();
  2373.    static sos_String_List make(sos_Typed_id&);
  2374.    static sos_String_List make(sos_Typed_id&p,_sos_Object_List*r){
  2375.    sos_String_List o; o._tpid = p; o._ref=r; return o;}
  2376.    static sos_String_List make(sos_Root_class&);
  2377.    sos_Offset _size();
  2378.    static sos_String_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  2379.    static sos_String_List copy(sos_String_List,sos_Container);
  2380.    static sos_String_List clone(sos_String_List,sos_Container);
  2381.    void destroy();
  2382.    sos_Int hash_value();
  2383.    void operator+=(sos_String_List _p1);
  2384.    void insert_after(sos_Cursor _p1,sos_String _p2);
  2385.    void set(sos_Cursor _p1,sos_String _p2);
  2386.    sos_String get(sos_Cursor _p1);
  2387.    void remove_at(sos_Cursor _p1);
  2388.    sos_Int card();
  2389.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2390.    void close_cursor(sos_Cursor _p1);
  2391.    sos_Cursor duplicate(sos_Cursor _p1);
  2392.    sos_Bool is_valid(sos_Cursor _p1);
  2393.    sos_Bool to_first(sos_Cursor _p1);
  2394.    sos_Bool to_last(sos_Cursor _p1);
  2395.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2396.    sos_Bool is_element(sos_String _p1);
  2397.    sos_Bool is_empty();
  2398.    sos_Bool has_type(sos_Type _p1);
  2399.    sos_Bool isa(sos_Type _p1);
  2400.    sos_Bool operator==(sos_Object _p1);
  2401.    sos_Bool operator!=(sos_Object _p1);
  2402.    void assign(sos_Object source);
  2403.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2404.    void append(sos_String _p1);
  2405.    void insert(Index _p1,sos_String _p2);
  2406.    Index current_pos(sos_Cursor _p1);
  2407.    void insert_before(sos_Cursor _p1,sos_String _p2);
  2408.    void clear();
  2409.    sos_Type type();
  2410.    sos_Int size();
  2411.    sos_Bool like(sos_Object _p1);
  2412.    void remove(Index _p1);
  2413.    sos_String get_nth(Index _p1);
  2414.    void set_nth(Index _p1,sos_String _p2);
  2415.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  2416.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2417.    sos_Bool is_some(sos_Type _p1);
  2418.    sos_Bool is_value();
  2419.    sos_Bool identical(sos_Object _p1);
  2420.    sos_Comp_result compare_ids(sos_Object _p1);
  2421. };
  2422. #define _sos_String_List_type sos_Id::make(sos_Container::make(279048),474172)
  2423. #define sos_String_List_type sos_type_object(_sos_String_List_type,sos_Id::make(sos_Container::make(279048),529560))
  2424. class sos_Enum_type: public sos_Root_class 
  2425. {  friend class _sos_Enum_type;
  2426.    class _sos_Enum_type* _ref;
  2427. public:
  2428.    operator sos_Object ();
  2429.    operator sos_Named ();
  2430.    operator sos_Type ();
  2431.    operator sos_Type_name ();
  2432.    operator sos_Schema_type ();
  2433.    static sos_Enum_type make(sos_Typed_id&);
  2434.    static sos_Enum_type make(sos_Typed_id&p,_sos_Enum_type*r){
  2435.    sos_Enum_type o; o._tpid = p; o._ref=r; return o;}
  2436.    static sos_Enum_type make(sos_Root_class&);
  2437.    sos_Offset _size();
  2438.    static sos_Enum_type create(sos_Container);
  2439.    static sos_Enum_type copy(sos_Enum_type,sos_Container);
  2440.    static sos_Enum_type clone(sos_Enum_type,sos_Container);
  2441.    void destroy();
  2442.    sos_Int hash_value();
  2443. protected:
  2444.    static sos_Bool local_equal(sos_Enum_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  2445. public:
  2446.    sos_Bool is_derived_from(sos_Type _p1);
  2447.    sos_Bool is_derived_from_some(sos_Type _p1);
  2448.    sos_Bool is_scalar();
  2449.    sos_String make_type_name();
  2450.    sos_Type root();
  2451.    sos_String get_name();
  2452.    void set_name(sos_String _p1);
  2453.    sos_Bool has_type(sos_Type _p1);
  2454.    sos_Bool isa(sos_Type _p1);
  2455.    sos_Bool operator==(sos_Object _p1);
  2456.    sos_Bool operator!=(sos_Object _p1);
  2457.    sos_Expr_List create_params();
  2458. protected:
  2459.    static void local_assign(sos_Enum_type x,sos_Enum_type y);
  2460. public:
  2461.    void assign(sos_Object source);
  2462.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2463.    sos_Scalar_object make_object(sos_String _p1);
  2464.    sos_String make_string(sos_Scalar_object _p1);
  2465.    sos_String_List get_literals();
  2466.    void set_literals(sos_String_List _p1);
  2467. protected:
  2468.    static sos_Int local_hash_value(sos_Enum_type _p1);
  2469. public:
  2470.    sos_Type base();
  2471.    sos_Schema_type make_type();
  2472.    sos_Int get_object_size();
  2473.    void set_object_size(sos_Int _p1);
  2474.    sos_Type type();
  2475.    sos_Bool is_some(sos_Type _p1);
  2476.    sos_Bool is_value();
  2477.    sos_Int size();
  2478.    sos_Bool identical(sos_Object _p1);
  2479.    sos_Bool like(sos_Object _p1);
  2480.    sos_Comp_result compare_ids(sos_Object _p1);
  2481.    sos_Schema_type make_root_type();
  2482.    sos_Schema_type make_base_type();
  2483. };
  2484. #define _sos_Enum_type_type sos_Id::make(sos_Container::make(279048),471440)
  2485. #define sos_Enum_type_type sos_type_object(_sos_Enum_type_type,sos_Id::make(sos_Container::make(279048),529560))
  2486. class sos_Extern_type: public sos_Root_class 
  2487. {  friend class _sos_Extern_type;
  2488.    class _sos_Extern_type* _ref;
  2489. public:
  2490.    operator sos_Object ();
  2491.    operator sos_Named ();
  2492.    operator sos_Type ();
  2493.    operator sos_Type_name ();
  2494.    operator sos_Schema_type ();
  2495.    static sos_Extern_type make(sos_Typed_id&);
  2496.    static sos_Extern_type make(sos_Typed_id&p,_sos_Extern_type*r){
  2497.    sos_Extern_type o; o._tpid = p; o._ref=r; return o;}
  2498.    static sos_Extern_type make(sos_Root_class&);
  2499.    sos_Offset _size();
  2500.    static sos_Extern_type create(sos_Container);
  2501.    static sos_Extern_type copy(sos_Extern_type,sos_Container);
  2502.    static sos_Extern_type clone(sos_Extern_type,sos_Container);
  2503.    void destroy();
  2504.    sos_Int hash_value();
  2505.    sos_Bool is_derived_from(sos_Type _p1);
  2506.    sos_Bool is_derived_from_some(sos_Type _p1);
  2507.    sos_Bool is_scalar();
  2508.    sos_String make_type_name();
  2509.    sos_Type root();
  2510.    sos_String get_name();
  2511.    void set_name(sos_String _p1);
  2512.    sos_Bool has_type(sos_Type _p1);
  2513.    sos_Bool isa(sos_Type _p1);
  2514.    sos_Bool operator==(sos_Object _p1);
  2515.    sos_Bool operator!=(sos_Object _p1);
  2516.    sos_Expr_List create_params();
  2517. protected:
  2518.    static void local_assign(sos_Extern_type x,sos_Extern_type y);
  2519.    static sos_Bool local_equal(sos_Extern_type x,sos_Extern_type y,sos_Eq_kind eq_kind = EQ_STRONG);
  2520. public:
  2521.    void assign(sos_Object source);
  2522.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2523.    sos_Type base();
  2524.    sos_Schema_type make_type();
  2525.    sos_Int get_object_size();
  2526.    void set_object_size(sos_Int _p1);
  2527.    sos_Type type();
  2528.    sos_Bool is_some(sos_Type _p1);
  2529.    sos_Bool is_value();
  2530.    sos_Int size();
  2531.    sos_Bool identical(sos_Object _p1);
  2532.    sos_Bool like(sos_Object _p1);
  2533.    sos_Comp_result compare_ids(sos_Object _p1);
  2534.    sos_Schema_type make_root_type();
  2535.    sos_Schema_type make_base_type();
  2536. protected:
  2537.    static sos_Int local_hash_value(sos_Extern_type x);
  2538. };
  2539. #define _sos_Extern_type_type sos_Id::make(sos_Container::make(279048),504144)
  2540. #define sos_Extern_type_type sos_type_object(_sos_Extern_type_type,sos_Id::make(sos_Container::make(279048),529560))
  2541. class sos_Forward_class_type: public sos_Root_class 
  2542. {  friend class _sos_Forward_class_type;
  2543.    class _sos_Forward_class_type* _ref;
  2544. public:
  2545.    operator sos_Object ();
  2546.    operator sos_Named ();
  2547.    operator sos_Type ();
  2548.    operator sos_Type_name ();
  2549.    operator sos_Schema_type ();
  2550.    static sos_Forward_class_type make(sos_Typed_id&);
  2551.    static sos_Forward_class_type make(sos_Typed_id&p,_sos_Forward_class_type*r){
  2552.    sos_Forward_class_type o; o._tpid = p; o._ref=r; return o;}
  2553.    static sos_Forward_class_type make(sos_Root_class&);
  2554.    sos_Offset _size();
  2555.    static sos_Forward_class_type create(sos_Container);
  2556.    static sos_Forward_class_type copy(sos_Forward_class_type,sos_Container);
  2557.    static sos_Forward_class_type clone(sos_Forward_class_type,sos_Container);
  2558.    void destroy();
  2559.    sos_Int hash_value();
  2560.    sos_Class_type get_complete();
  2561.    void set_complete(sos_Class_type _p1);
  2562. protected:
  2563.    static sos_Bool local_equal(sos_Forward_class_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  2564. public:
  2565.    sos_Bool is_derived_from(sos_Type _p1);
  2566.    sos_Bool is_derived_from_some(sos_Type _p1);
  2567.    sos_Bool is_scalar();
  2568.    sos_String make_type_name();
  2569.    sos_Type root();
  2570.    sos_String get_name();
  2571.    void set_name(sos_String _p1);
  2572.    sos_Bool has_type(sos_Type _p1);
  2573.    sos_Bool isa(sos_Type _p1);
  2574.    sos_Bool operator==(sos_Object _p1);
  2575.    sos_Bool operator!=(sos_Object _p1);
  2576.    sos_Expr_List create_params();
  2577. protected:
  2578.    static void local_assign(sos_Forward_class_type x,sos_Forward_class_type y);
  2579. public:
  2580.    void assign(sos_Object source);
  2581.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2582.    sos_Schema_type make_base_type();
  2583. protected:
  2584.    static sos_Int local_hash_value(sos_Forward_class_type _p1);
  2585. public:
  2586.    sos_Type base();
  2587.    sos_Schema_type make_type();
  2588.    sos_Int get_object_size();
  2589.    void set_object_size(sos_Int _p1);
  2590.    sos_Type type();
  2591.    sos_Bool is_some(sos_Type _p1);
  2592.    sos_Bool is_value();
  2593.    sos_Int size();
  2594.    sos_Bool identical(sos_Object _p1);
  2595.    sos_Bool like(sos_Object _p1);
  2596.    sos_Comp_result compare_ids(sos_Object _p1);
  2597.    sos_Schema_type make_root_type();
  2598. };
  2599. #define _sos_Forward_class_type_type sos_Id::make(sos_Container::make(279048),512216)
  2600. #define sos_Forward_class_type_type sos_type_object(_sos_Forward_class_type_type,sos_Id::make(sos_Container::make(279048),529560))
  2601. class sos_Super_class: public sos_Root_class 
  2602. {  friend class _sos_Super_class;
  2603.    class _sos_Super_class* _ref;
  2604. public:
  2605.    operator sos_Object ();
  2606.    static sos_Super_class make(sos_Typed_id&);
  2607.    static sos_Super_class make(sos_Typed_id&p,_sos_Super_class*r){
  2608.    sos_Super_class o; o._tpid = p; o._ref=r; return o;}
  2609.    static sos_Super_class make(sos_Root_class&);
  2610.    sos_Offset _size();
  2611.    static sos_Super_class create(sos_Container);
  2612.    static sos_Super_class copy(sos_Super_class,sos_Container);
  2613.    static sos_Super_class clone(sos_Super_class,sos_Container);
  2614.    void destroy();
  2615.    void assign(sos_Object source);
  2616.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2617.    sos_Int hash_value();
  2618.    sos_Class_type get_super_class();
  2619.    void set_super_class(sos_Class_type _p1);
  2620.    sos_Expr_List get_create_params();
  2621.    void set_create_params(sos_Expr_List _p1);
  2622.    sos_Int get_offset();
  2623.    void set_offset(sos_Int _p1);
  2624.    sos_Type type();
  2625.    sos_Bool has_type(sos_Type _p1);
  2626.    sos_Bool isa(sos_Type _p1);
  2627.    sos_Bool is_some(sos_Type _p1);
  2628.    sos_Bool is_value();
  2629.    sos_Int size();
  2630.    sos_Bool identical(sos_Object _p1);
  2631.    sos_Bool operator==(sos_Object _p1);
  2632.    sos_Bool operator!=(sos_Object _p1);
  2633.    sos_Bool like(sos_Object _p1);
  2634.    sos_Comp_result compare_ids(sos_Object _p1);
  2635. protected:
  2636.    static void local_assign(sos_Super_class x,sos_Super_class y);
  2637.    static sos_Bool local_equal(sos_Super_class x,sos_Super_class y,sos_Eq_kind eq_kind = EQ_STRONG);
  2638.    static sos_Int local_hash_value(sos_Super_class x);
  2639. };
  2640. #define _sos_Super_class_type sos_Id::make(sos_Container::make(279048),521732)
  2641. #define sos_Super_class_type sos_type_object(_sos_Super_class_type,sos_Id::make(sos_Container::make(279048),529560))
  2642. class sos_Gen_param_Collection: public sos_Root_class 
  2643. {  friend class _sos_Object_Collection;
  2644.    class _sos_Object_Collection* _ref;
  2645. public:
  2646.    operator sos_Object ();
  2647.    operator sos_Aggregate ();
  2648.    operator sos_Object_Collection ();
  2649.    static sos_Gen_param_Collection make(sos_Typed_id&);
  2650.    static sos_Gen_param_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  2651.    sos_Gen_param_Collection o; o._tpid = p; o._ref=r; return o;}
  2652.    static sos_Gen_param_Collection make(sos_Root_class&);
  2653.    sos_Offset _size();
  2654.    static sos_Gen_param_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  2655.    static sos_Gen_param_Collection copy(sos_Gen_param_Collection,sos_Container);
  2656.    static sos_Gen_param_Collection clone(sos_Gen_param_Collection,sos_Container);
  2657.    void destroy();
  2658.    sos_Int hash_value();
  2659.    sos_Bool is_element(sos_Gen_param _p1);
  2660.    sos_Gen_param get(sos_Cursor _p1);
  2661.    sos_Bool is_empty();
  2662.    sos_Int card();
  2663.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2664.    void close_cursor(sos_Cursor _p1);
  2665.    sos_Cursor duplicate(sos_Cursor _p1);
  2666.    sos_Bool is_valid(sos_Cursor _p1);
  2667.    void remove_at(sos_Cursor _p1);
  2668.    sos_Bool to_first(sos_Cursor _p1);
  2669.    sos_Bool to_last(sos_Cursor _p1);
  2670.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2671.    sos_Bool has_type(sos_Type _p1);
  2672.    sos_Bool isa(sos_Type _p1);
  2673.    sos_Bool operator==(sos_Object _p1);
  2674.    sos_Bool operator!=(sos_Object _p1);
  2675.    void assign(sos_Object source);
  2676.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2677.    void clear();
  2678.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2679.    sos_Type type();
  2680.    sos_Bool is_some(sos_Type _p1);
  2681.    sos_Bool is_value();
  2682.    sos_Int size();
  2683.    sos_Bool identical(sos_Object _p1);
  2684.    sos_Bool like(sos_Object _p1);
  2685.    sos_Comp_result compare_ids(sos_Object _p1);
  2686. };
  2687. #define _sos_Gen_param_Collection_type sos_Id::make(sos_Container::make(279048),532988)
  2688. #define sos_Gen_param_Collection_type sos_type_object(_sos_Gen_param_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  2689. class sos_Gen_param_List: public sos_Root_class 
  2690. {  friend class _sos_Object_List;
  2691.    class _sos_Object_List* _ref;
  2692. public:
  2693.    operator sos_Object ();
  2694.    operator sos_Aggregate ();
  2695.    operator sos_Gen_param_Collection ();
  2696.    operator sos_Object_Collection ();
  2697.    operator sos_Object_List ();
  2698.    static sos_Gen_param_List make(sos_Typed_id&);
  2699.    static sos_Gen_param_List make(sos_Typed_id&p,_sos_Object_List*r){
  2700.    sos_Gen_param_List o; o._tpid = p; o._ref=r; return o;}
  2701.    static sos_Gen_param_List make(sos_Root_class&);
  2702.    sos_Offset _size();
  2703.    static sos_Gen_param_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  2704.    static sos_Gen_param_List copy(sos_Gen_param_List,sos_Container);
  2705.    static sos_Gen_param_List clone(sos_Gen_param_List,sos_Container);
  2706.    void destroy();
  2707.    sos_Int hash_value();
  2708.    void operator+=(sos_Gen_param_List _p1);
  2709.    void insert_after(sos_Cursor _p1,sos_Gen_param _p2);
  2710.    void set(sos_Cursor _p1,sos_Gen_param _p2);
  2711.    sos_Gen_param get(sos_Cursor _p1);
  2712.    void remove_at(sos_Cursor _p1);
  2713.    sos_Int card();
  2714.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2715.    void close_cursor(sos_Cursor _p1);
  2716.    sos_Cursor duplicate(sos_Cursor _p1);
  2717.    sos_Bool is_valid(sos_Cursor _p1);
  2718.    sos_Bool to_first(sos_Cursor _p1);
  2719.    sos_Bool to_last(sos_Cursor _p1);
  2720.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2721.    sos_Bool is_element(sos_Gen_param _p1);
  2722.    sos_Bool is_empty();
  2723.    sos_Bool has_type(sos_Type _p1);
  2724.    sos_Bool isa(sos_Type _p1);
  2725.    sos_Bool operator==(sos_Object _p1);
  2726.    sos_Bool operator!=(sos_Object _p1);
  2727.    void assign(sos_Object source);
  2728.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2729.    void append(sos_Gen_param _p1);
  2730.    void insert(Index _p1,sos_Gen_param _p2);
  2731.    Index current_pos(sos_Cursor _p1);
  2732.    void insert_before(sos_Cursor _p1,sos_Gen_param _p2);
  2733.    void clear();
  2734.    sos_Type type();
  2735.    sos_Int size();
  2736.    sos_Bool like(sos_Object _p1);
  2737.    void remove(Index _p1);
  2738.    sos_Gen_param get_nth(Index _p1);
  2739.    void set_nth(Index _p1,sos_Gen_param _p2);
  2740.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  2741.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2742.    sos_Bool is_some(sos_Type _p1);
  2743.    sos_Bool is_value();
  2744.    sos_Bool identical(sos_Object _p1);
  2745.    sos_Comp_result compare_ids(sos_Object _p1);
  2746. };
  2747. #define _sos_Gen_param_List_type sos_Id::make(sos_Container::make(279048),532648)
  2748. #define sos_Gen_param_List_type sos_type_object(_sos_Gen_param_List_type,sos_Id::make(sos_Container::make(279048),529560))
  2749. class sos_Super_class_Collection: public sos_Root_class 
  2750. {  friend class _sos_Object_Collection;
  2751.    class _sos_Object_Collection* _ref;
  2752. public:
  2753.    operator sos_Object ();
  2754.    operator sos_Aggregate ();
  2755.    operator sos_Object_Collection ();
  2756.    static sos_Super_class_Collection make(sos_Typed_id&);
  2757.    static sos_Super_class_Collection make(sos_Typed_id&p,_sos_Object_Collection*r){
  2758.    sos_Super_class_Collection o; o._tpid = p; o._ref=r; return o;}
  2759.    static sos_Super_class_Collection make(sos_Root_class&);
  2760.    sos_Offset _size();
  2761.    static sos_Super_class_Collection create(sos_Container,sos_Bool based_on_equal = FALSE);
  2762.    static sos_Super_class_Collection copy(sos_Super_class_Collection,sos_Container);
  2763.    static sos_Super_class_Collection clone(sos_Super_class_Collection,sos_Container);
  2764.    void destroy();
  2765.    sos_Int hash_value();
  2766.    sos_Bool is_element(sos_Super_class _p1);
  2767.    sos_Super_class get(sos_Cursor _p1);
  2768.    sos_Bool is_empty();
  2769.    sos_Int card();
  2770.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2771.    void close_cursor(sos_Cursor _p1);
  2772.    sos_Cursor duplicate(sos_Cursor _p1);
  2773.    sos_Bool is_valid(sos_Cursor _p1);
  2774.    void remove_at(sos_Cursor _p1);
  2775.    sos_Bool to_first(sos_Cursor _p1);
  2776.    sos_Bool to_last(sos_Cursor _p1);
  2777.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2778.    sos_Bool has_type(sos_Type _p1);
  2779.    sos_Bool isa(sos_Type _p1);
  2780.    sos_Bool operator==(sos_Object _p1);
  2781.    sos_Bool operator!=(sos_Object _p1);
  2782.    void assign(sos_Object source);
  2783.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2784.    void clear();
  2785.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2786.    sos_Type type();
  2787.    sos_Bool is_some(sos_Type _p1);
  2788.    sos_Bool is_value();
  2789.    sos_Int size();
  2790.    sos_Bool identical(sos_Object _p1);
  2791.    sos_Bool like(sos_Object _p1);
  2792.    sos_Comp_result compare_ids(sos_Object _p1);
  2793. };
  2794. #define _sos_Super_class_Collection_type sos_Id::make(sos_Container::make(279048),560332)
  2795. #define sos_Super_class_Collection_type sos_type_object(_sos_Super_class_Collection_type,sos_Id::make(sos_Container::make(279048),529560))
  2796. class sos_Super_class_List: public sos_Root_class 
  2797. {  friend class _sos_Object_List;
  2798.    class _sos_Object_List* _ref;
  2799. public:
  2800.    operator sos_Object ();
  2801.    operator sos_Aggregate ();
  2802.    operator sos_Super_class_Collection ();
  2803.    operator sos_Object_Collection ();
  2804.    operator sos_Object_List ();
  2805.    static sos_Super_class_List make(sos_Typed_id&);
  2806.    static sos_Super_class_List make(sos_Typed_id&p,_sos_Object_List*r){
  2807.    sos_Super_class_List o; o._tpid = p; o._ref=r; return o;}
  2808.    static sos_Super_class_List make(sos_Root_class&);
  2809.    sos_Offset _size();
  2810.    static sos_Super_class_List create(sos_Container,sos_Bool based_on_equal = FALSE);
  2811.    static sos_Super_class_List copy(sos_Super_class_List,sos_Container);
  2812.    static sos_Super_class_List clone(sos_Super_class_List,sos_Container);
  2813.    void destroy();
  2814.    sos_Int hash_value();
  2815.    void operator+=(sos_Super_class_List _p1);
  2816.    void insert_after(sos_Cursor _p1,sos_Super_class _p2);
  2817.    void set(sos_Cursor _p1,sos_Super_class _p2);
  2818.    sos_Super_class get(sos_Cursor _p1);
  2819.    void remove_at(sos_Cursor _p1);
  2820.    sos_Int card();
  2821.    sos_Cursor open_cursor(sos_Container _p1 = TEMP_CONTAINER);
  2822.    void close_cursor(sos_Cursor _p1);
  2823.    sos_Cursor duplicate(sos_Cursor _p1);
  2824.    sos_Bool is_valid(sos_Cursor _p1);
  2825.    sos_Bool to_first(sos_Cursor _p1);
  2826.    sos_Bool to_last(sos_Cursor _p1);
  2827.    sos_Bool to_pred(sos_Cursor _p1,sos_Int _p2 = 1);
  2828.    sos_Bool is_element(sos_Super_class _p1);
  2829.    sos_Bool is_empty();
  2830.    sos_Bool has_type(sos_Type _p1);
  2831.    sos_Bool isa(sos_Type _p1);
  2832.    sos_Bool operator==(sos_Object _p1);
  2833.    sos_Bool operator!=(sos_Object _p1);
  2834.    void assign(sos_Object source);
  2835.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2836.    void append(sos_Super_class _p1);
  2837.    void insert(Index _p1,sos_Super_class _p2);
  2838.    Index current_pos(sos_Cursor _p1);
  2839.    void insert_before(sos_Cursor _p1,sos_Super_class _p2);
  2840.    void clear();
  2841.    sos_Type type();
  2842.    sos_Int size();
  2843.    sos_Bool like(sos_Object _p1);
  2844.    void remove(Index _p1);
  2845.    sos_Super_class get_nth(Index _p1);
  2846.    void set_nth(Index _p1,sos_Super_class _p2);
  2847.    sos_Bool move_cursor(sos_Cursor _p1,Index _p2);
  2848.    sos_Bool to_succ(sos_Cursor _p1,sos_Int _p2 = 1);
  2849.    sos_Bool is_some(sos_Type _p1);
  2850.    sos_Bool is_value();
  2851.    sos_Bool identical(sos_Object _p1);
  2852.    sos_Comp_result compare_ids(sos_Object _p1);
  2853. };
  2854. #define _sos_Super_class_List_type sos_Id::make(sos_Container::make(279048),560128)
  2855. #define sos_Super_class_List_type sos_type_object(_sos_Super_class_List_type,sos_Id::make(sos_Container::make(279048),529560))
  2856. class sos_Class_type: public sos_Root_class 
  2857. {  friend class _sos_Class_type;
  2858.    class _sos_Class_type* _ref;
  2859. public:
  2860.    operator sos_Object ();
  2861.    operator sos_Named ();
  2862.    operator sos_Type ();
  2863.    operator sos_Type_name ();
  2864.    operator sos_Schema_type ();
  2865.    static sos_Class_type make(sos_Typed_id&);
  2866.    static sos_Class_type make(sos_Typed_id&p,_sos_Class_type*r){
  2867.    sos_Class_type o; o._tpid = p; o._ref=r; return o;}
  2868.    static sos_Class_type make(sos_Root_class&);
  2869.    sos_Offset _size();
  2870.    static sos_Class_type create(sos_Container);
  2871.    static sos_Class_type copy(sos_Class_type,sos_Container);
  2872.    static sos_Class_type clone(sos_Class_type,sos_Container);
  2873.    void destroy();
  2874.    sos_Int hash_value();
  2875.    sos_Bool is_derived_from(sos_Type _p1);
  2876.    sos_Type root();
  2877.    sos_String make_type_name();
  2878.    sos_Bool get_is_abstract();
  2879.    void set_is_abstract(sos_Bool _p1);
  2880.    sos_Super_class_List get_super_closure();
  2881.    void set_super_closure(sos_Super_class_List _p1);
  2882.    sos_Method_List get_comp_methods();
  2883.    void set_comp_methods(sos_Method_List _p1);
  2884. protected:
  2885.    static sos_Bool local_equal(sos_Class_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  2886. public:
  2887.    sos_Bool isa(sos_Type _p1);
  2888.    sos_Bool operator==(sos_Object _p1);
  2889.    sos_Bool operator!=(sos_Object _p1);
  2890.    sos_Expr_List create_params();
  2891. protected:
  2892.    static void local_assign(sos_Class_type x,sos_Class_type y);
  2893. public:
  2894.    void assign(sos_Object source);
  2895.    sos_Bool equal(sos_Object o,sos_Eq_kind eq_kind = EQ_STRONG);
  2896.    sos_Class_type root_class();
  2897.    sos_Gen_param_List get_gen_params();
  2898.    void set_gen_params(sos_Gen_param_List _p1);
  2899.    sos_Bool get_has_init_comps();
  2900.    void set_has_init_comps(sos_Bool _p1);
  2901.    sos_Method_List get_static_methods();
  2902.    void set_static_methods(sos_Method_List _p1);
  2903.    sos_Generic_instantiation get_generated_from();
  2904.    void set_generated_from(sos_Generic_instantiation _p1);
  2905.    sos_Type base();
  2906.    sos_Schema_type make_type();
  2907.    sos_Int get_object_size();
  2908.    void set_object_size(sos_Int _p1);
  2909.    sos_Type type();
  2910.    sos_Int size();
  2911.    sos_Bool like(sos_Object _p1);
  2912.    sos_Bool is_derived_from_some(sos_Type _p1);
  2913.    sos_Type_name_List get_friends();
  2914.    void set_friends(sos_Type_name_List _p1);
  2915.    sos_Method_table get_inherited_methods();
  2916.    void set_inherited_methods(sos_Method_table _p1);
  2917.    sos_String get_root_name();
  2918.    void set_root_name(sos_String _p1);
  2919.    sos_Bool is_scalar();
  2920.    sos_String get_name();
  2921.    void set_name(sos_String _p1);
  2922.    sos_Bool has_type(sos_Type _p1);
  2923.    sos_Schema_type make_root_type();
  2924.    sos_Param_List get_create_params();
  2925.    void set_create_params(sos_Param_List _p1);
  2926.    sos_Type_name_List get_super_classes();
  2927.    void set_super_classes(sos_Type_name_List _p1);
  2928.    sos_Method_List get_methods();
  2929.    void set_methods(sos_Method_List _p1);
  2930.    sos_Int get_local_size();
  2931.    void set_local_size(sos_Int _p1);
  2932. protected:
  2933.    static sos_Int local_hash_value(sos_Class_type _p1);
  2934. public:
  2935.    sos_Bool is_some(sos_Type _p1);
  2936.    sos_Bool is_value();
  2937.    sos_Bool identical(sos_Object _p1);
  2938.    sos_Comp_result compare_ids(sos_Object _p1);
  2939.    sos_Schema_type make_base_type();
  2940. };
  2941. #define _sos_Class_type_type sos_Id::make(sos_Container::make(279048),529560)
  2942. #define sos_Class_type_type sos_type_object(_sos_Class_type_type,sos_Id::make(sos_Container::make(279048),529560))
  2943. #endif
  2944.